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文件上传源码分析
文件上传,一般分为俩种方式FTP和HTTP,对于我们的互联网应用来说:FTP上传虽然传输稳定,但是易用性和安全性都是个问题.你总不至于在用户要上传头像的时候告诉用户”请打开FTP客户端,上传文件到中,并以2dk433423l.jpg命名”吧?PHP文件上传源码分析基于HTTP的上传...
-
php是什么大纲
导读:时至今日,仍有无以数计的童鞋出于各种渠道了解仍要来学习php,那么对于新手来说,对php有一个清晰的认知则是很有必要的。Php是什么?PHP是一种创建动态交互性站点的强有力的服务器端脚本语言。PHP是免费的,并且使用非常广泛。同时,对于像微软ASP这样的竞争者来说,P...
-
PHP入门学习方法
每个人的学习方式不同,写这篇文章的目的是分享一下自己的学习过程,仅供参考,不要一味的用别人的学习方法,找对自己有用的学习方式,关于php语言怎么学呢?下面是相关的知识,欢迎阅读。其实学习一门新语言并不是太难,重要的是你有没有准备好去学好它,时间的长短和个人的能...
-
PHP工程师应该掌握的知识结构
作为一名合格的PHP工程师的知识结构是怎样的?下面是本站小编精心为大家整理的PHP工程师应该掌握的知识结构,希望对大家有帮助,更多内容请关注应届毕业生网!一x方面Linux常用命令1.文件处理命令2.权限管理命令3.帮助命令4.文件搜索命令5.压缩解压命令6.命令使用技...