PHP常用開發技巧

來源:文萃谷 2.96W

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);

熱門標籤