前几天就想好好整理上次遇到的问题,但是工作比较忙,就放到周末来写吧。
上次和同事沟通需求的时候,他给了一段他写好了的代码,我运行的时候发现了几个BUG,都是由于程序不严谨,考虑不周到,在这里写下来,和有一定PHP开发基础的朋友分享一下。
1、foreach数组一定先判断类型
发现很多PHP程序员在foreach数组的时候直接来,没有在之前判断一下类型,这可能是由于PHP是弱类型语言导致大家的定向编程思维吧。逻辑上是从数据库里边取出来一个数组,然后我们在PHP程序里边直接foreach,这无可厚非,但是,有没有想过数据库根据你的SQL条件压根就没取到数据呢?那么,在PHP代码里边直接foreach一个空的变量就会报错了!虽然,几乎所有公司的线上环境都已经屏蔽了PHP报错,但是,我们可以再把我们的代码写得再严谨一点,下面是我的习惯写法:
<?php
//定义测试数组
$arr_temp = array(1=>'one');
//先判断
if(is_array($arr_temp) && count($arr_temp) >0){
//再foreach遍历
foreach($arr_temp as $k=>$v){
... ...
}
}
?>
当然,上面只是我的习惯写法,你知道在foreach之前判断类型就OK了。这是在,你不能完全确定你获取的数据是否是数组的情况下必须写的一个步骤。如果你能100%确定你能得到一个数组类型的数据的话,那这个步骤可以无视。
2、需要什么数据就从库里边获取多少数据
我那哥们给我的代码是这么写的:从数据库里获取所有记录(其实他只需要4条就完事了),然后在展示层只foreach循环遍历输出4条数据!多么可怕的写法呀!
一个用户访问还好,访问量大了,内存直接撑到暴!
其实,取4条数据在你从数据库里获取时候的时候就应该限制了,并且select的时候需要哪些字段就获取哪些字段,很多朋友一写select 就直接select * from ... (自己当初也这么干的,呵呵)。这个习惯很不好,合理有效的利用数据与服务器内存,将硬件成本最小化。
说在最后:工作一年了,学到了很多,想分享的也很多,以后会慢慢写下来,鄙人是一位疯狂的编程图书收藏者,www.codejia.net 个人收藏屋,金屋藏娇于此。现在主要工作数据处理这块,后续和大家分享更多有关数据库性能方面的东东吧。
分享到:
相关推荐
java程序员面试必备的32个要点java程序员面试必备的32个要点java程序员面试必备的32个要点java程序员面试必备的32个要点java程序员面试必备的32个要点java程序员面试必备的32个要点java程序员面试必备的32个要点java...
JAVA 程序员面试必备的32个要点
PHP程序员常备手册PHP程序员常备手册PHP程序员常备手册PHP程序员常备手册PHP程序员常备手册PHP程序员常备手册
PHP程序员面试宝典 笔试 (PHP版).zip
PHP程序员面试题目
不管是新手还是高手。php程序员必备手册。
php程序员工具箱是迄今为止全网唯一款php程序员的专属工具箱,集合了php环境搭建、在线小工具、原生手册、文字与视频教程、问答社区等,可以更好的帮助和服务广大php初学者,需要此款工具的朋友们欢迎前来下载使用。...
程序员进价应该注意的要点,编程的方法,技巧,以及学习心得。
1.普通PHP程序员笔试题 2.PHP经典面试题 …… 希望对你有帮助
初级PHP程序员笔试题——结合算法的思想!
嵌入式系统程序员嵌入式系统程序员嵌入式系统程序员嵌入式系统程序员
PHP高级程序员笔试题(含答案),应用解答题,招高级PHP必备
PHP程序员简历模板 iOS程序员简历模板 Android程序员简历模板 Web前端程序员简历模板 Java程序员简历模板 C/C++程序员简历模板 NodeJS程序员简历模板 架构师简历模板 通用程序员简历模板PHP程序员简历模板 iOS程序员...
java写XML文件和读取XML文件《一个优秀程序员必会知识要点》
这是关于java程序员面试必备的32个要点的小文档
php程序员工具箱v0.7集成环境php程序员工具箱v0.7集成环境php程序员工具箱v0.7集成环境php程序员工具箱v0.7集成环境
嵌入式程序员应知道的几个基本问题对于每一个需要的人来说都是有用的。