前几天就想好好整理上次遇到的问题,但是工作比较忙,就放到周末来写吧。

上次和同事沟通需求的时候,他给了一段他写好了的代码,我运行的时候发现了几个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 个人收藏屋,金屋藏娇于此。现在主要工作数据处理这块,后续和大家分享更多有关数据库性能方面的东东吧。

容易被PHP程序员忽视的几个要点相关推荐

  1. 被程序员忽视的位运算

    在博客园潜水好久了,今天兴致高昂的想写一篇博客,写的内容就是最近刚刚弄懂的关于位运算的题目.可能对那些老鸟老说这些是在基础不过的东西了,但是我相信还是有很多的博客需要了解并掌握这个基础的. 做题目前首 ...

  2. “大话架构”阿里架构师分享的Java程序员需要突破的技术要点

    一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...

  3. iOS程序员必须知道的Android要点

     http://www.open-open.com/lib/view/open1399509690915.html 在移动应用飞速发展的今天,APP只针对IOS平台进行开发已经不够了,如今Andr ...

  4. 什么是整洁代码?大咖程序员们这样说

    这是本有关编写好程序的书.它充斥着代码.我们要从各个方向来考察这些代码.从顶向下,从底往上,从里而外.读完后,就能知道许多关于代码的事了. <代码整洁之道> 马丁 著 而且,我们还能说出好 ...

  5. 作为程序员,哪些技能是必须要掌握的?

    要想成为一个合格的程序员,你还需要具备哪些能力呢? 熟练开发工具 作为程序员,至少熟练掌握了2~3种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高 ...

  6. 非好学校科班出身的程序员,该如何快速提升自己

    目前一般的大点的公司,往往会在招聘时(尤其在招聘3年以下工作经验的程序员时)会设置学校的门槛,比如需要211或985相关专业毕业.这里我无意贬低不在这个范围的程序员,相反在本文里还将根据我所见和我所闻 ...

  7. Java程序员面试题

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...

  8. 程序员的简历该怎么写?

    一个学生辞职了,约我吃饭. 他说,老师,最近投了很多简历,就一个小公司回复了: 面试过了,但我不想去,能不能帮我分析分析,我现在该怎么办啊? 他的情况我了解,在北京找一份12k的工作不难,怎么只有一家 ...

  9. 优秀程序员眼中的整洁代码

    点击上方蓝字关注公众号 码个蛋第274次推文 看看大神们怎么说 作者:风铃无声江舟听雨 博客:https://www.jianshu.com/u/b525437c0777 有多少程序员,就有多少定义. ...

最新文章

  1. Pytorch中用于深度学习常见的激活函数
  2. python 同花顺thstrader_GitHub - yanjlee/THSTrader: 量化交易。同花顺免费模拟炒股软件客户端的python API。(Python3)...
  3. 查看文档(API) (NSString)
  4. 浅论ViewState及其与Session的关系
  5. 替代反射调用的几种方式及性能测试
  6. ReadProcessMemory函数的分析
  7. 成为高级网络管理员必学知识
  8. 【Java】位运算符:左移右移
  9. feignclient url_Feign-自定义FeignClient
  10. 【web前端】a只显示visited属性问题解决方法
  11. 重庆市机电工业学校计算机专业,重庆机电工业学校2021年招生计划
  12. 小米air2 pro ota 升级固件
  13. HtmlUnit实现人人网登陆
  14. 中国牛市还会来吗,中国牛市啥时候到?
  15. 企业销售预测实战-为什么要做销售预测
  16. robotframework-ride for mac m2
  17. 有人在双11疯狂剁手,有人在双11被直播“治愈”
  18. 想成为企业疯抢的新型数通人才?华为Datacom认证喊你来学习啦
  19. SQL注入靶场:辛巴猫舍
  20. 电脑安装虚拟机网络适配器上面没有虚拟机的网络

热门文章

  1. java私聊_【转帖】实现了视频私聊功能
  2. python中怎么替换字母_python去除拼音声调字母,替换为字母的方法
  3. 计算机学院嘉年华标题,我院计算机系举办计算机嘉年华系列活动
  4. 那些面对面试官的“绝杀技”
  5. python转json中文乱码_python 序列化成json 乱码问题的解决
  6. 剑指offer面试题[34]丑数
  7. 基类和派生类的构造函数,隐式调用与显式调用
  8. 《为何爱会伤人》-读书笔记
  9. 不宜使用Selenium自动化的10个测试场景
  10. 软件测试工程师要掌握的Linux系统命令-很全,但不是最全!