命名的注意事项:
  1. 命名要有实际含义
  2. 命名风格保持一致
  3. 不用拼音命名
  4. 不用语言关键字
适当的使用注释
  1. 好的代码应该是自描述的
  2. 难以理解的地方加上注释
  3. 函数的功能加上注释说明
  4. 类的功能和使用方法加注释
多备份重要的代码
  1. 代码不能只有一份
  2. 启用编译器的自动备份
  3. 用代码管理工具备份
坚持字符编码统一
  • PHP文件编码==模板编码==数据库编码
使用之前,变量要初始化
  • 使用一个未定义的变量,比使用一个定义好的变量要慢8倍以上!
可以想象,PHP引擎会首先按照正常的逻辑来获取这个变量,然而这个变量不存在,所以PHP引擎需要抛出一个NOTICE,并且进入一段使用未定义变量时应该走的逻辑,然后返回一个新的变量。
另外,阅读代码的角度讲,当你使用一个未定义的变量时,会让阅读你代码的人困惑:“这个变量在哪里初始化的,和之前的代码有关系吗?和include进来的文件有关系吗?”
使用NULL ===来代替is_null
  • is_null和NULL ===完全是一样的效果,但是却节省了一次函数的调用。
尽量使用===尽量不用==
  • PHP有两组相等比较运算符===/!==和==/!=,==/!=会有隐式类型转换,而===/!==会严格比较两个操作时是否类型相同并且值相等。
避免在for循环中计算
  • 会导致每次循环都运行计算
strtr替代str_replace
  • strtr函数的效率是str_replace的四倍
优先使用单引号
  • $row['id']的效率是$row[id]的7倍
header头的编码
header("Content-type: text/html;charset=utf-8");
php结束标记不要写
  •  纯PHP代码,最好在文件末尾删除PHP结束标记
测试环境开启所有错误
error_reporting(7)
  • E_ERROR
  • E_WARNING
  • E_PARSE
    切记,上线之后要关闭我们的报错,将我们的错误代码写入到错误日志中,方便查错
屏蔽错误非常低效
  • 养错不用@的好习惯
用FALSE表示错误,用NULL表示不存在
  • 对于操作类的函数,失败返回FALSE,表示“操作失败了”,而对于查询类的函数,如果找不到想要的值,则应该返回NULL,表示“找不到”。
优先使用PHP 内置函数
  • 正则耗时,尽量避免,而采用直接的字符串处理函数代替,如:
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--返回字符串中单词的使用情况
防御式编程思想
  • 不要相信外部的一切输入!所以的输入都要检查
使用PDO操作MySQL

PHP学习之PHP编码习惯的更多相关文章

  1. C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义

    类型判断符号: C#:object a;  if(a is int) { }  用 is 符号判断 Java:object a; if(a instanceof Integer) { } 用 inst ...

  2. 测试不得不知的python编程小技能-----升级版基础语法和优秀的编码习惯

    编程和学习python,最后快速上手.能写小工具,写自动化用例这类要求对鹅厂的测试人员来说都是一些基础的必备素质,但是一个优秀的测试,也是有着一颗开发完美测试工具的心的.但是罗马不是一天构建成,特别是 ...

  3. 好的android编码习惯

    上一期分享了android内存优化的一些总结,这一期说说我认为的好的编码习惯,然后下一期会做安卓数据库优化的一些总结,逐渐的会将一些性能优化点总结分享出来,肯定是不够全面的希望不足的地方欢迎指出. 良 ...

  4. C#编码标准--编码习惯

    C#编码标准--编码习惯 0.  书写程序时的大小写规则: a) 类:PascalCase表示法.如 MyClass b) 枚举值:PascalCase表示法.如 Colors.Red c) 枚举类型 ...

  5. kotlin 语言入门指南(三)--编码习惯

    这章主要讲当前 kotlin 的一些编码习惯. 命名 如无疑问,kotlin 的命名风格与以下的java风格一样: --驼峰命名法(不要使用下划线) --类名首字母大写 --方法和属性名首字母小写 - ...

  6. 我的编码习惯 - Controller规范

    原文出处: 晓风轻 请先阅读我这2篇文章 程序员你为什么这么累? 和 我的编码习惯 - 接口定义. 第一篇文章中,我贴了2段代码,第一个是原生态的,第2段是我指定了接口定义规范,使用AOP技术之后最终 ...

  7. Python编码规范(养成好的编码习惯很重要)

    学习过程养成良好的编码习惯 1. 类名采用驼峰命名法,即类名的每个首字母都大写,如:class HelloWord,类名不使用下划线 2. 函数名只使用小写字母和下划线 3.定义类后面包含一个文档字符 ...

  8. MySQL学习笔记5——编码

    MySQL学习笔记5之编码 编码 1.查看MySQL数据库编码 *SHOW VARIABLES LIK 'char%'; 2.编码解释 *character_set_client:MySQL使用该编码 ...

  9. java良好的编码习惯

    1. 尽量在合适的场合使用单例   使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步 ...

随机推荐

  1. Java分布式互联网架构/微服务/高性能/springboot/springcloud2018年10月16日直播内容

    2018年10月16日直播内容 架构师揭秘springboot对springmvc的自动配置原理 直播地址:https://ke.qq.com/course/179440?tuin=9b386640 ...

  2. Shell基础之四 变量与运算

    shell变量与运算 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$号,只有引用变量的值时才使用$号.也就是说在内存中,标记变量的变量名称是str,而不是$str. 变量数据的存储方式 ...

  3. codeforces gym #101987B- Cosmetic Survey(floyd)

    题目链接: https://codeforces.com/gym/101987/my 题意: 顶点数为$n$,边数为$m$ 求出每个点对$(a,b)$,$a$到$b$的最小路径的最大值 数据范围: $ ...

  4. ICEM—气体罐子

    原视频下载地址:https://yunpan.cn/cPfzaLzkcFXVK  访问密码 62cf

  5. IE与其他浏览器兼容性问题总结

    1.eval(idName) [问题描述]:IE.safari.Chrome浏览器下都可以使用eval(idName)或getElementById(idName)来取得id为idName的HTML对 ...

  6. VS2010,VS2013 Datagridview控件的编辑列功能,弹窗界面被挤扁了

    搜了很久,没找到解决办法,在一个角落看到说要卸载Framework,实践后可以,发出来记一下. 解决办法: 发现自己电脑上多了Framework4.8,可能安装VS2013的时候自动安装的. 卸载了F ...

  7. k-means和iosdata聚类算法在生活案例中的运用

    引言:聚类是将数据分成类或者簇的过程,从而使同簇的对象之间具有很高的相似度,而不同的簇的对象相似度则存在差异.聚类技术是一种迭代重定位技术,在我们的生活中也得到了广泛的运用,比如:零件分组.数据评价. ...

  8. Nginx内置变量及正则语法

    对于很多Nginx初学者来说,配置文件是必须要看懂的.但是当公司的Nginx配置文件放在你面前的时候你总会被一些带着"$"符号和一大推看不懂的的正则给正懵逼.没错带着"$ ...

  9. 数据库与linux中quota的作用

    linux命令,quota 命令显示磁盘使用情况和限额.缺省情况下,或者带 -u 标志,只显示用户限额.quota 命令报告 /etc/filesystems 文件中列出的所有文件系统的限额.如果 q ...

  10. LC 898. Bitwise ORs of Subarrays

    We have an array A of non-negative integers. For every (contiguous) subarray B = [A[i], A[i+1], ..., ...