PHP学习之PHP编码习惯
程序员文章站
2022-04-14 18:26:42
命名的注意事项: 命名要有实际含义 命名风格保持一致 不用拼音命名 不用语言关键字 适当的使用注释 好的代码应该是自描述的 难以理解的地方加上注释 函数的功能加上注释说明 类的功能和使用方法加注释 多备份重要的代码 代码不能只有一份 启用编译器的自动备份 用代码管理工具备份 坚持字符编码统一 PHP ......
命名的注意事项:
-
命名要有实际含义
-
命名风格保持一致
-
不用拼音命名
-
不用语言关键字
适当的使用注释
-
好的代码应该是自描述的
-
难以理解的地方加上注释
-
函数的功能加上注释说明
-
类的功能和使用方法加注释
多备份重要的代码
-
代码不能只有一份
-
启用编译器的自动备份
-
用代码管理工具备份
坚持字符编码统一
-
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--生成一个唯一idget_browser--获取浏览器具有的功能str_word_count--返回字符串中单词的使用情况
防御式编程思想
-
不要相信外部的一切输入!所以的输入都要检查
使用pdo操作mysql
推荐阅读
-
PHP字符串函数系列之nl2br(),在字符串中的每个新行 ( ) 之前插入 HTML 换行符br
-
支持生僻字且自动识别utf-8编码的php汉字转拼音类
-
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
-
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
-
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
-
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
-
php微信公众号开发之秒杀
-
php微信公众号开发之翻页查询
-
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
-
php制作unicode解码工具(unicode编码转换器)代码分享