php语言 百分网手机站

PHP常用开发技巧

时间:2020-09-19 18:30:01 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);

  

【PHP常用开发技巧】相关文章:

PHP开发安全的技巧09-19

PHP开发的安全技巧08-31

PHP常用开发工具分析09-26

PHP常用开发工具分析08-26

PHP常用的技术技巧09-24

PHP语言开发常用工具09-28

PHP开发常用的10段代码10-04

PHP开发的五大技巧09-23

PHP开发提高效率技巧09-12