- 相關推薦
PHP常用開發技巧
PHP開發常用技巧能使你在開發過程中快而有效.以下就是小編精心推薦PHP常用開發技巧,希望對大家有幫助!
1 使用do while避免多層if語句嵌套
我們直接舉例說明:
實現方式①
if ($name == 'hedong') { if ($sex == 'male') { if ($major == 'PHP') { $ret = '河東個牛逼的人'; } else { $ret = '沒學的河東PHP,貌似就不那么牛逼了'; } } else { $ret = '河東是個pretty girl'; }} else { $ret = '你不是河東,免談!';}
實現方式②
do { if ($name != 'hedong') { $ret = '你不是河東,免談!'; break; } if ($sex != 'male') { $ret = '河東是個pretty girl'; break; } if ($sex != 'PHP') { $ret = '沒學PHP的河東,貌似就不那么牛逼了'; break; } $ret = '河東個牛逼的人';} while (false);
雖然實現方式①和② 都可實現相同的功能,但方式②明顯更有條理性,實戰中推薦使用。
2 有些內置函數可以替代foreach循環
有時候不一定非得使用foreach,有更好的PHP內置數組函數處理數組,如使用array_map()和array_reduce()替代foreach循環。
1) 使用array_reduce(array $array , callable $callback )函數,用回調函數迭代地將數組簡化為單一的值。
① 使用array_reduce()替代foreach()循環最常用的一個業務場景也許就是數組求和,比如:
$arr = array('1','2','3');$sum = 0;//使用 foreach循環計算foreach($arr as $v){ $sum += $v;}//使用array_reduce()迭代求和echo array_reduce($arr , function($result , $v){ Return $result+$v;});
② 再比如,從數據庫中查詢出一組數據,接下來想得到他們的 id 值,拼接成類似 (1,2,3,4,5)字符串,然后再”SELECT * WHERE id in (1,2,3,4,5)”處理,這時候完全可以 foreach() 數組處理,其實也可以使用 array_reduce(),因為 array_reduce()就是“迭代地將數組簡化為單一的值”,如下:
$arr = array( array('id' => 1, 'name' => 'a'), array('id' => 2, 'name' => 'b'), array('id' => 3, 'name' => 'c'));echo array_reduce($arr, function($result, $v) { return empty($result) ? $v['id']: $result . ',' . $v['id'];});
當然也可以使用implode(',',array_column($arr,'id'));實現
2)array_map(callback $callback , $arr) 返回用戶自定義函數作用后的數組。回調函數接受的參數數目應該和傳遞給 array_map() 函數的數組數目一致。
向array_map傳入數組,出來的還是數組,而不是上面array_reduce()的一個值。所以,array_map()最簡單的就是把 callback函數作用到每個數組的值上,最常見的場景就是 intval()、trim() 數組中的值,在一些框架的源碼中也經常見到,比如:
$arr = array('2', '3', '4', '5');array_map('intval', $arr);//在拼接sql查詢的時候,很有用array_map('htmlspecialchars', $arr);
【PHP常用開發技巧】相關文章:
PHP開發CS結構的技巧08-27
PHP日常開發小技巧09-10
PHP常用開發工具分析06-27
10個常用的PHP技術技巧06-28
常用的php開發工具有哪些07-26
PHP小技巧07-12
PHP后門的隱藏技巧10-03
PHP前端開發中的性能05-25
PHP開發環境安裝的方法08-29
如何配置PHP開發環境07-21