精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

優化你的PHP代碼,從現在做起

開發 前端
大家好,我是CrazyCodes ,今天我們不聊工具、規范等等等等的輔助,就聊一下該如何寫一段“好”的代碼,本文以我的職業生涯碰到的代碼為例,如有出入請在評論區提出異議,謝謝。

 [[266568]]

前言

我一生的文章都會放在這里,我的博客,我希望每一行代碼,每一段文字都能幫助你。https://github.com/CrazyCodes...

大家好,我是CrazyCodes ,今天我們不聊工具、規范等等等等的輔助,就聊一下該如何寫一段“好”的代碼,本文以我的職業生涯碰到的代碼為例,如有出入請在評論區提出異議,謝謝。

搜索功能

搜索很常見,復雜的搜索大多出行在后臺,舉個栗子,大概需求是這樣的。

這是一個后臺用戶列表的搜索功能

搜索條件 可否并行 是否必填
用戶名 可以
手機號碼 可以
是否已認證 可以
用戶性別 可以
最近登錄時間 可以
賬戶余額 可以

初學者代碼

看到這些例子你是否不由的一顫,又要開始造輪子的是不是?

以原生的例子為例,開始你可能會這樣寫(以下為偽代碼) :

  1. if (IS_POST) {  
  2.     $like = '' 
  3.     if (isset($_POST['username'])) {  
  4.         $username = $_POST['username'];  
  5.         $like ."username like '%" . $username . "%' and ";  
  6.     }  
  7.     if (isset($_POST['phone'])) {  
  8.         $phone = $_POST['phone'];  
  9.         $like ."phone like '%" . $phone . "%' and";  
  10.     }  
  11.     if ($_POST['is_auth']) {  
  12.         $isAuth = $_POST['is_auth'];  
  13.         $like ."is_auth like '%" . $isAuth . "%' and";  
  14.     }  
  15.     if ($_POST['sex']) {  
  16.         $sex = $_POST['sex'];  
  17.         $like ."sex like '%" . $sex . "%' and";  
  18.     }  
  19.     if ($_POST['time']) {  
  20.         $time = $_POST['time'];  
  21.         $like ."time like '%" . $time . "%' and";  
  22.     }  
  23.     if ($_POST['wallet']) {  
  24.         $wallet = $_POST['wallet'];  
  25.         $like ."wallet like '%" . $wallet . "%' and";  
  26.     }  
  27.     $like = rtrim($like, 'and');  
  28.     $sql = "SELECT * FROM `user` WHERE {$like}" 
  29. } else {  
  30.     return view('user');  
  31.  

封裝

恩...,還不錯,結構清晰,傳統的初學者條型代碼,接下來我們先封裝一下幾塊代碼。 

  1. function post($param)  
  2.  
  3.     return isset($_POST[$param]) ? $_POST[$param] : null;  
  4.  
  5. if (IS_POST) {  
  6.     $like = '' 
  7.     if (post('username')) {  
  8.         $username = post('username');  
  9.         $like ."username like '%" . $username . "%' and ";  
  10.     }  
  11.     if (post('phone')) {  
  12.         $phone = post('phone');  
  13.         $like ."phone like '%" . $phone . "%' and";  
  14.     }  
  15.     if (post('is_auth')) {  
  16.         $isAuth = post('is_auth');  
  17.         $like ."is_auth like '%" . $isAuth . "%' and";  
  18.     }  
  19.     if (post('sex')) {  
  20.         $sex = post('sex');  
  21.         $like ."sex like '%" . $sex . "%' and";  
  22.     }  
  23.     if (post('time')) {  
  24.         $time = post('time');  
  25.         $like ."time like '%" . $time . "%' and";  
  26.     }  
  27.     if (post('wallet')) {  
  28.         $wallet = post('wallet');  
  29.         $like ."wallet like '%" . $wallet . "%' and";  
  30.     }  
  31.     $like = rtrim($like, 'and');  
  32.     $sql = "SELECT * FROM `user` WHERE {$like}" 
  33. } else {  
  34.     return view('user');  
  35.  

適當使用迭代

恩,至少我們可以自由控制post方法了,但是這類過程化代碼維護性太低,我們再改進下:

  1. function post($param)  
  2.  
  3.     return isset($_POST[$param]) ? $_POST[$param] : false;  
  4.  
  5. function postAll()  
  6.  
  7.     return $_POST;  
  8.  
  9. if (IS_POST) {  
  10.     $like = '' 
  11.     foreach (postAll() as $key => $value) {  
  12.         if (post($key)) {  
  13.             $like ."{$key} like '%{$value}%' and" 
  14.         }  
  15.     }  
  16.     $like = rtrim($like, 'and');  
  17.     $sql = "SELECT * FROM `user` WHERE {$like}" 
  18. } else {  
  19.     return view('user');  
  20.  

面向對象

加個迭代代碼看起來還算是整潔了點,作為PHP程序員,寫代碼不面向對象不靠譜,把class加上。

  1. function request($param = null 
  2.  
  3.     return new Request($param);  
  4.  
  5. class Request  
  6.  
  7.     public function __construct(string $param = null
  8.  
  9.     {  
  10.         return isset($_POST[$param]) ? $_POST[$param] : false;  
  11.     }  
  12.     public function all()  
  13.     {  
  14.         return $_POST;  
  15.     }  
  16.  
  17. class User  
  18.  
  19.     public function index()  
  20.     {  
  21.         if (IS_POST) {  
  22.             $like = '' 
  23.             foreach (request()->all() as $key => $value) {  
  24.                 if (request($key)) {  
  25.                     $like ."{$key} like '%{$value}%' and" 
  26.                 }  
  27.             }  
  28.             $like = rtrim($like, 'and');  
  29.             $sql = "SELECT * FROM `user` WHERE {$like}" 
  30.         } else {  
  31.             return view('user');  
  32.         }  
  33.     }  
  34.  

對User的改造

我們在對User的類進行改造,做一些判斷及篩選。

  1. function request($param = null 
  2.  
  3.     return new Request($param);  
  4.  
  5. class Request  
  6.  
  7.     public function __construct(string $param = null 
  8.     {  
  9.         return isset($_POST[$param]) ? $_POST[$param] : false;  
  10.     }  
  11.     public function all()  
  12.     {  
  13.         return $_POST;  
  14.     }  
  15.  
  16. class User  
  17.  
  18.     public $request = [  
  19.         'username',  
  20.         'phone',  
  21.         'is_auth',  
  22.         'sex',  
  23.         'time',  
  24.         'wallet'  
  25.     ];  
  26.     public function index()  
  27.     {  
  28.         if (IS_POST) {  
  29.             $like = '' 
  30.             foreach (request()->all() as $key => $value) {  
  31.                 if (in_array($key, $this->request) && request($key)) {  
  32.                     $like .sprintf("%s like %s and", $key, $value);  
  33.                 }  
  34.             }  
  35.             $like = rtrim($like, 'and');  
  36.             $sql = "SELECT * FROM `user` WHERE {$like}"
  37.         } else {  
  38.             return view('user');  
  39.         }  
  40.     }  

這就差不多了,對比真是的代碼可能還相差甚遠,我寫這篇文章的目的不是教會你如何寫代碼,是想說明編碼不是一次性的,應經過多次修改,使代碼具有可維護性,擴展性等等的,各種“性”。

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2020-12-23 13:26:53

代碼麻省理工學院語言

2015-10-26 09:19:28

PHP經驗

2025-08-07 09:51:24

2012-06-18 15:18:32

JS

2009-11-27 13:24:20

PHP代碼性能優化

2012-04-20 11:15:14

MikeLee靠譜應用蘋果

2012-11-27 10:17:04

2021-04-27 06:44:03

PythonCython編程語言

2009-11-26 10:32:57

PHP代碼優化

2020-08-04 06:32:21

JavaScript代碼開發

2009-12-03 16:30:24

PHP代碼解析損耗

2010-03-02 10:31:07

FirePHP調試

2024-12-23 08:10:00

Python代碼性能代碼

2022-09-04 15:40:39

JavaScrip狀態模式軟件

2016-09-29 15:49:30

大數據上市

2020-05-13 14:15:25

if-else代碼前端

2016-06-06 10:20:59

大數據流式計算數據處理

2011-07-06 11:33:52

ADSLModem

2020-07-21 18:46:31

PHP框架語言

2023-04-14 10:40:45

工具編譯器優化
點贊
收藏

51CTO技術棧公眾號

一区二区国产精品视频| 欧美性xxxxx极品娇小| 亚洲综合精品伊人久久| 久久综合亚洲色hezyo国产| 成人福利一区| 一本色道久久综合精品竹菊| 欧日韩一区二区三区| 97久久人国产精品婷婷| 影音先锋久久资源网| 亚洲欧美日韩另类| 一区二区三区国产好的精华液| 国产经典三级在线| 久久综合狠狠综合| 国产欧美一区二区三区四区| 国产小视频在线观看免费| 国产99久久精品一区二区300| 欧美日本一区二区| 国产97在线 | 亚洲| 黄色一级片在线观看| 91蜜桃在线免费视频| 亚洲资源在线看| 成年人晚上看的视频| 亚洲激情偷拍| 欧美成人精品一区| 中字幕一区二区三区乱码| 国产精品亚洲一区二区在线观看| 色屁屁一区二区| 一本久道高清无码视频| 欧美日韩在线资源| 国产亚洲污的网站| 精品一区日韩成人| www.激情五月.com| 蜜桃传媒麻豆第一区在线观看| 欧美极度另类性三渗透| 丁香花五月婷婷| 欧美三级午夜理伦三级在线观看| 欧美日韩一本到| 中文字幕在线中文字幕日亚韩一区| 日韩精品一二| 成人av网站免费| 亚洲专区中文字幕| 国产精品视频久久久久久| 视频一区视频二区中文字幕| 久久青草福利网站| 久久久久久久黄色| 欧美久色视频| 久久九九免费视频| 国产一级淫片久久久片a级| 久久综合色占| 亚洲精品视频中文字幕| 国产激情视频网站| 97一区二区国产好的精华液| 日韩欧美一二区| 久久久久久久久久久久久久久国产| 91成人在线| 日本韩国欧美三级| 手机看片福利盒子久久| 激情都市亚洲| 欧美影院一区二区三区| 青青草av网站| 成人影院在线免费观看| 欧美三级蜜桃2在线观看| www.com黄色片| 日韩第二十一页| 51午夜精品国产| 免费国偷自产拍精品视频| 香蕉成人app| 日韩欧美在线不卡| 美女黄色一级视频| 天天操综合520| 亚洲免费中文字幕| 粉嫩精品久久99综合一区| 日韩成人精品一区| 欧美成人免费观看| 久久国产在线视频| 日韩一级精品| 国产精品1区2区在线观看 | 一区二区三区四区激情| 成年在线观看视频| 亚洲欧洲日本韩国| 欧美日韩一区三区四区| 精品国产午夜福利在线观看| 一区二区三区亚洲变态调教大结局 | 中文字幕一区二区5566日韩| 米仓穗香在线观看| 麻豆mv在线看| 欧美另类久久久品| 四虎精品一区二区| 欧美一级精品| 九九久久久久99精品| 青青草av在线播放| 久久精品国产秦先生| 国产精品区一区二区三在线播放| 日本不卡视频一区二区| 国产精品久久久久影院色老大| 妺妺窝人体色www看人体| 天堂av中文在线观看| 欧美丰满嫩嫩电影| av无码一区二区三区| 日韩专区精品| 91国产中文字幕| 97超碰人人草| 91视频.com| 成人午夜免费剧场| 日本精品另类| 亚洲国产成人精品久久久国产成人一区| www.狠狠爱| 亚洲性色视频| 成人性教育视频在线观看| 天天色综合久久| 亚洲欧美一区二区三区久本道91| 国产aaa一级片| 日韩精品视频一区二区三区| 国产亚洲精品久久久久久牛牛| 国产精品九九九九九九| 日本色综合中文字幕| 国产一区二区中文字幕免费看| 天堂а√在线资源在线| 欧美特黄级在线| 成人做爰www看视频软件| 久久资源中文字幕| 欧洲永久精品大片ww免费漫画| www日本高清视频| 中文字幕亚洲一区二区av在线| 黑人糟蹋人妻hd中文字幕| 亚洲国产中文在线| 久久亚洲一区二区三区四区五区高| 草久久免费视频| 成人性生交大片免费| 糖心vlog在线免费观看| 亚洲a成人v| 最近2019中文字幕在线高清| 男人天堂2024| 99国内精品久久| 国产曰肥老太婆无遮挡| 日韩亚洲精品在线观看| 久久天天躁狠狠躁夜夜av| 黄色大全在线观看| 国产视频一区在线观看| 女人另类性混交zo| 免费av一区二区三区四区| 26uuu亚洲伊人春色| 少妇高潮一区二区三区69| 亚洲综合视频在线| ass极品水嫩小美女ass| 97精品视频| 成人国产精品日本在线| 快射视频在线观看| 欧美日韩高清一区二区| 国产一区二区三区视频播放| 免费人成在线不卡| 一区二区三区偷拍| 亚洲电影二区| 欧美成年人视频网站欧美| 国产精品一区二区免费视频| 亚洲视频资源在线| 无套白嫩进入乌克兰美女| 亚洲天堂免费| 国产精品av一区| 国产高清视频色在线www| 亚洲激情自拍图| 日本一区二区免费电影| 中文字幕免费不卡| 亚洲人视频在线| 欧美激情91| 国产视频在线观看一区| 亚洲性受xxx喷奶水| 亚洲欧洲日本专区| 亚洲天堂aaa| 亚洲男同性恋视频| av在线播放网址| 久久精品国产清高在天天线| 视频一区亚洲| 久久久久亚洲精品中文字幕| 久久久久久亚洲| 狠狠狠综合7777久夜色撩人| 欧美日韩国产乱码电影| 成人免费黄色小视频| 波多野结衣91| 99免费视频观看| 亚洲成人一区| 久久精品国产一区二区三区日韩 | 一本高清dvd不卡在线观看| 中文字幕在线观看免费高清| 精品亚洲成a人| 三上悠亚久久精品| 成人在线免费观看网站| 99久久精品免费看国产一区二区三区| 老司机深夜福利在线观看| 亚洲图片在区色| 亚洲av无码片一区二区三区| 日韩欧美黄色动漫| 亚洲欧美另类日本| av一区二区三区黑人| 中文字幕天天干| 精品999日本| 一区二区三区观看| 日韩在线黄色| 97影院在线午夜| 国产精品久久亚洲不卡| 欧美激情亚洲国产| av大片在线播放| 日韩av在线精品| 99产精品成人啪免费网站| 一本到一区二区三区| 久久中文字幕在线观看| 国产精品欧美久久久久无广告| 精品久久久久一区二区| 国内精品不卡在线| 精品久久久噜噜噜噜久久图片 | 日本va中文字幕| 韩国av一区| 在线一区高清| 国产探花在线精品| 国新精品乱码一区二区三区18| 四虎永久精品在线| 国产精品福利网| 美女91在线看| 欧美激情亚洲另类| √天堂8在线网| 日日噜噜噜夜夜爽亚洲精品| 欧美色综合一区二区三区| 欧美大片日本大片免费观看| 一本色道久久综合精品婷婷 | 国产又爽又黄免费软件| 黑人极品videos精品欧美裸| 欧美片一区二区| 一色桃子久久精品亚洲| 99精品欧美一区二区| 99re这里都是精品| 免费黄色三级网站| 粉嫩高潮美女一区二区三区| 五月六月丁香婷婷| 精品亚洲国内自在自线福利| 不卡的av中文字幕| 秋霞av亚洲一区二区三| 日韩一级免费在线观看| 亚洲综合不卡| 黄色a级片免费| 每日更新成人在线视频| 少妇性饥渴无码a区免费| 国产亚洲毛片在线| 国产肥臀一区二区福利视频| 亚洲激情午夜| 各处沟厕大尺度偷拍女厕嘘嘘| 亚洲激情视频| 欧洲黄色一级视频| 六月婷婷一区| 成年人黄色片视频| 日韩电影在线免费观看| 污污视频网站免费观看| 三级久久三级久久| 免费黄色特级片| 免费成人在线视频观看| 性生活免费在线观看| 久久精品国产一区二区三| gai在线观看免费高清| 国内成+人亚洲+欧美+综合在线| 爱豆国产剧免费观看大全剧苏畅| 狠狠v欧美v日韩v亚洲ⅴ| 一级片免费在线观看视频| 国产99精品视频| 午夜男人的天堂| 久久蜜桃av一区二区天堂| 微拍福利一区二区| 国产精品久久久久影院老司| 美女福利视频在线观看| 伊人色综合久久天天人手人婷| 久久久久噜噜噜亚洲熟女综合| 亚洲成人www| 一级片在线观看免费| 欧美性感一区二区三区| 97免费观看视频| 亚洲高清色综合| av在线日韩国产精品| 欧美成人高清视频| 99爱在线视频| 国产精品久久久久久久久免费| japansex久久高清精品| 国产91aaa| 国产欧美高清视频在线| 操bbb操bbb| 国产农村妇女毛片精品久久莱园子| 91色国产在线| 成人网男人的天堂| 国产又粗又猛又爽又黄av| 亚洲乱码中文字幕| 好看的av在线| 91精品国产综合久久久久久| 天天色综合av| 久久精品视频在线播放| 麻豆视频在线观看免费网站黄| 91精品久久久久久久久久久久久久| 日韩亚洲精品在线观看| 深夜福利成人| 影音先锋亚洲精品| 色乱码一区二区三区在线| aaa国产一区| 永久免费未视频| 欧美日韩亚洲精品一区二区三区| 国产伦精品一区二区三区免.费| 日韩精品一区二区三区第95| 乱人伦中文视频在线| 日本道色综合久久影院| 美女国产精品久久久| 日韩欧美在线一区二区| 欧美va亚洲va日韩∨a综合色| 粗暴91大变态调教| 成人免费观看视频| 免费看特级毛片| 日本韩国精品在线| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 色七七影院综合| 成人午夜视屏| 国产一区二区高清视频| 亚洲一区二区日韩| 污污的网站18| 久久久久国产一区二区三区四区 | 欧美久久高跟鞋激| 国产一二三区在线| 欧美性做爰毛片| 高潮按摩久久久久久av免费| 中文字幕在线中文字幕日亚韩一区| 美女诱惑黄网站一区| 亚洲男人在线天堂| 亚洲午夜久久久久久久久电影院 | 少妇激情综合网| 久久人体大尺度| 久久久亚洲综合网站| 亚洲手机在线| 国产麻豆剧传媒精品国产| 椎名由奈av一区二区三区| 中文字幕欧美色图| 这里只有精品在线观看| 激情亚洲影院在线观看| 欧美极品视频一区二区三区| 国产视频一区欧美| 黄色国产在线观看| 狠狠干狠狠久久| 日本一二三区在线视频| 热久久美女精品天天吊色| 人人精品亚洲| 免费无码av片在线观看| 91麻豆精品在线观看| 久久99精品波多结衣一区| 日韩精品免费在线| 黑人精品一区| 午夜免费电影一区在线观看| 日韩成人免费看| 国产黄色片在线| 91精品国产黑色紧身裤美女| 国产精品扒开做爽爽爽的视频| 91在线视频免费| 午夜天堂精品久久久久| 日本成人在线免费| 午夜精品一区二区三区电影天堂| 色香蕉在线视频| 日产精品99久久久久久| 欧美在线观看视频一区| 国产精品涩涩涩视频网站| 国产精品全国免费观看高清| 国产精品久久久久久免费免熟| 久久精品男人天堂| 一区二区三区国产好| 日韩欧美一区二| 国产午夜精品久久| 一本色道久久综合精品婷婷 | 欧美日韩大片| 亚洲精品日韩在线观看| 国产一区二区在线免费观看| 国产一级在线视频| 国产午夜精品全部视频在线播放 | 国产精品免费观看高清| 国产欧美一级| 色撸撸在线视频| 欧美刺激午夜性久久久久久久| h片在线观看下载| 日韩精品久久一区二区三区| 韩国毛片一区二区三区| 国产一级免费观看| 亚洲情综合五月天| 韩国一区二区三区视频| 青青草国产精品视频| 国产精品亲子伦对白| www.com在线观看| 国产精品av在线| 你懂的网址国产 欧美| www.久久av| 日韩一区二区精品在线观看| 久草在线中文最新视频| 一本色道久久综合亚洲二区三区| 成人午夜电影久久影院| 亚洲精品国产精品国自产网站按摩| 欧美精品免费在线观看| 国产精品亚洲片在线播放| 免费观看黄网站| 欧美性感一区二区三区| av在线最新| 神马午夜伦理影院| 国产精品素人一区二区|