命名的注意事项:
  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. 启动Docker后台容器,测试运行Hello-world

    1.使用docker run hello-world命令运行测试hello-world镜像,如下: 2.run 命令都干了什么?如下图: 3.为什么Docker比vm快?

  2. flutter 中 List 和 Map 的用法

    list集合 在Dart中,数组是List对象,因此大多数人只是将它们称为List.以下是一个简单的Dart的List: 创建一个int类型的list List list = [10, 7, 23]; ...

  3. 安装windows下安装mysql

    参考文档:https://www.cnblogs.com/reyinever/p/8551977.html  https://www.jb51.net/article/151213.htm 首先下载m ...

  4. 12Flutter页面布局 AspectRatio和Cart卡片组件

    /* Flutter AspectRatio.Cart卡片组件: AspectRatio的作用是根据设置调整子元素child的宽高比. AspectRatio首先会在布局限制条件允许的范围内尽可能的扩 ...

  5. vue+大文件断点续传

    根据部门的业务需求,需要在网络状态不良的情况下上传很大的文件(1G+).其中会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长,请求超时:3,传输中断,必须重新上传导致前功尽弃.解 ...

  6. LeetCode_13. Roman to Integer

    13. Roman to Integer Easy Roman numerals are represented by seven different symbols: I, V, X, L, C,  ...

  7. TextView的封装和自定义

    实现的效果如下: #import <UIKit/UIKit.h> @interface CustomTextView : UITextView @property (nonatomic , ...

  8. Spring Aop(十三)——ProxyFactoryBean创建代理对象

    转发地址:https://www.iteye.com/blog/elim-2398673 ProxyFactoryBean创建代理对象 ProxyFactoryBean实现了Spring的Factor ...

  9. Golang开源项目

    谷歌官方维护了一个基于go语言的开源项目列表: https://github.com/golang/go/wiki/Projects 其中有非常多的优秀项目值得学习,有几百行代码适合新手阅读的项目,也 ...

  10. 微信小程序 仿‘得到app’分类列表页

    今天另起一篇,贴出完整的代码,大概思路是左侧大分类列表,点击后联动右侧二级分类,及下面文章列表,点击二级分类也联动下面文章列表. 代码如下: <view class="page&quo ...