PHP常用开发技巧

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