PHP学习之PHP编码习惯
命名的注意事项:
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄
- 命名要有实际含义
- 命名风格保持一致
- 不用拼音命名
- 不用语言关键字
- 好的代码应该是自描述的
- 难以理解的地方加上注释
- 函数的功能加上注释说明
- 类的功能和使用方法加注释
- 代码不能只有一份
- 启用编译器的自动备份
- 用代码管理工具备份
- PHP文件编码==模板编码==数据库编码
- 使用一个未定义的变量,比使用一个定义好的变量要慢8倍以上!
可以想象,PHP引擎会首先按照正常的逻辑来获取这个变量,然而这个变量不存在,所以PHP引擎需要抛出一个NOTICE,并且进入一段使用未定义变量时应该走的逻辑,然后返回一个新的变量。 另外,阅读代码的角度讲,当你使用一个未定义的变量时,会让阅读你代码的人困惑:“这个变量在哪里初始化的,和之前的代码有关系吗?和include进来的文件有关系吗?” 使用NULL ===来代替is_null
- is_null和NULL ===完全是一样的效果,但是却节省了一次函数的调用。
- PHP有两组相等比较运算符===/!==和==/!=,==/!=会有隐式类型转换,而===/!==会严格比较两个操作时是否类型相同并且值相等。
- 会导致每次循环都运行计算
- strtr函数的效率是str_replace的四倍
- $row['id']的效率是$row[id]的7倍
header("Content-type: text/html;charset=utf-8");php结束标记不要写
- 纯PHP代码,最好在文件末尾删除PHP结束标记
error_reporting(7)
- E_ERROR
- E_WARNING
- E_PARSE
- 养错不用@的好习惯
- 对于操作类的函数,失败返回FALSE,表示“操作失败了”,而对于查询类的函数,如果找不到想要的值,则应该返回NULL,表示“找不到”。
- 正则耗时,尽量避免,而采用直接的字符串处理函数代替,如:
filter_var('zhangsan@163.com',FILTER_VALIDATE_EMAIL);
- 有用的PHP内置函数
usort--使用用户自定义的比较函数对数组中的值进行排序 rawurlencode--按照RFC1738对url进行编码 parse_url--解析URL,返回其组成部分 http_build_query--生成URL-encode之后的请求字符串 exif_imagetype--判断一个图像的类型 uniqid--生成一个唯一ID get_browser--获取浏览器具有的功能 str_word_count--返回字符串中单词的使用情况防御式编程思想
- 不要相信外部的一切输入!所以的输入都要检查

更多精彩