如何才能写出高质量的PHP代码
如何才能写出高质量的PHP代码?
首先我们必须知道什么样的代码是高质量的!这样我们才能做到。那么这就要从PHP语言自身说起!
PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。——百度百科
PHP是一门怎样的语言
PHP是一门怎样的语言?根据百科的解释,它是脚本语言,也就是解析型语言,就是说PHP不会像Java或者C被编译成二进制文件,而是动态加载解析,这样效率本来就没有二进制语言执行速度快,所以它一般强调解析速度,而二进制代码强调执行速度(当然具体哪个语言效率高,不是这篇文章的主要问题)。
有的人说PHP也可以编译,也可以这样理解的,但是他所谓的编译只是将代码加密和优化,不能算真正意义上的编译,执行过程还是需要进行解析。
PHP的语法相较于C或者Java更加随意一些,当然他比Html标签语言要求更严格,只是有一些地方还是比较宽泛的,这就使得我们各人写出来的代码 千差万别,虽然执行效果一样,但是很多地方表达都不一样。那么,问题来了!到底怎样写才是质量最好的,也就是代码效率更高?
提高PHP代码质量
- PHP中的类文件的或者配置文件,主要是引用文件,尽量不要使用后面的闭合标签
比如:
<?php class A { //... } ?>
最好写成下面的
<?php class A { //... }
尽量少使用PHP中的标签缩写,使用完整写法,以使其有更好的移植性和兼容性。
<?php //开始标签必须完整 //... ?> //结束标签在引用文件中可以省略
- 合理使用单引号和双引号的使用
对于在什么时候使用单引号,什么时候使用上引号,这个问题网上有很多答案,大家都可以参考,主要的思想是:单引号中的内容是直接输出,上引号中间的内容是要先检查转义,再输出。这样,就是说不需要转义的字符串使用了双引号就会引起执行速度慢,此时最好使用单引号。需要转义的字符串就要使用双引号包含,否则不能转义,会直接输出。
echo "Hello"; //执行速度慢,需要检查转义 echo 'Hello'; //执行速度快,不需要检查转义 $_GET["name"]; //执行速度慢,需要检查转义 $_GET['name']; //执行速度快,不需要检查转义 arr["title"]; //执行速度慢,需要检查转义 arr['title']; //执行速度快,不需要检查转义
下面我们来看一下需要转义的输出
file_put_content("Hello\r\n"); //输出到文件结果后换行 file_put_content('Hello\r\n'); //输出到文件的结果:Hello\r\n
- 多使用PHP的内置函数,不要随意自定相同功能的函数。
这又是为什么呢?因为PHP的底层是C语言编写,PHP是以模块的形式加载了C语言编译好的二进制文件,这样在底层集成的内置函数的执行速度一定比PHP自定义的函数快。
- 定义全局变量时使用global关键字,使用完成后一定要unset()掉,不至于让内存占用太大,现在的Apache已经很臃肿,占用很大内存,PHP再占用内存过大,可能导致服务器宕机。
- 一定不能使用@屏蔽错误消息。
通过@来屏蔽错误或者警告,这是极其不规范的编码方式,对于一个有洁癖的程序猿,这是无法忍受的,当然这样的做法极其低效。而且可能会引起其他错误而不好发现和调试。
- 尽量用函数或者算法代替正则表达,正则表达的效率远远低于PHP函数执行。
- 对大变量或者数组最好能做到及时释放。
- 尽量不要在for函数中定义变量,如果太大,内存可能吃不消。
- 与数据库之间的数据交换最好交给PHP处理,然后再CURD。
好了,今天就写这么多,其实因为PHP的历史原因,编码的规范性不强,这就使得PHPer有很多不好的习惯,这些习惯应该从开始学习时就改正过来,不能图省事,今天流的汗都是当初做事时脑子进的水!所以一定要规范编码,以后到大公司,有更详细的编码规范,就像花括号在行尾还是换行都有要求,实际开发中的代码是要求极其严格的。
最后,网上还有很多关于PHP代码书写规范和提高性能的建议,大家可以好好研读一下,我上面写的主要是自己开发过程中遇到过的一些简单技巧和规范。大家可以再后面留言哪些更重要的,感觉好我会补充,谢谢大家浏览。