PHP开发注意事项总结


Posted in PHP onFebruary 04, 2015

1.使用内嵌的HTML代码,而不是PHP的echo语句。

因为PHP是一门嵌入式Web编程语言,可以将HTML代码和PHP代码相互嵌入。但是很多程序员担心在HTML代码中过多的使用”"嵌入PHP代码会多次调用PHP解释器,从而降低了PHP代码的运行速度,所以宁愿使用PHP的echo语句来输出HTML代码,而不直接使用HTML代码。但事实却恰恰相反。每一个PHP页面只调用一次PHP解释器来解释所有的PHP代码,所以,只在需要时才嵌入PHP代码,而大多数的时候直接使用HTML代码输入结果,不但不会降低程序的运行速度,而且因为减少了对echo语句的解析,往往可以提高代码的运行速度。

2.尽量使用str-replace而不是ereg-replace

习惯使用Perl进行编程的程序员更加愿意使用ereg_replace完成字符串替换工作,因为在PHP中ereg_replace的用法和Perl中模式匹配的用法相近。但是,下面的这段代码证明,使用str_replace 代替 ereg_replace将可以大大提高代码的运行速度。

3.注意字符串的引用

PHP和其它很多编程语言一样,可以使用双引号("")来引用字符串,也可以使用单引号()。但是在PHP中,如果使用双引号来引用字符串,那么PHP解析器将首先分析字符串中有没有对变量的引用,有变量的话,将对变量进行替换。如果是单引号,则没有如此复杂——直接将单引号包含起来的所有字符串直接显示出来。显然,在PHP编程中,如果使用单引号引用字符串变量要比使用双引号快速一些。

4.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值

<!--p 

//不要这样做 

for ($i=0;$i<=count($array);$i++){ 

    ... 

} 

//应该这样做 

$array_length = count($array); 

for ($i=0;$i<=$array_length;$i++){ 

    ... 

} 

-->

5.注意include与require的区别

在PHP变成中,include()与require()的功能相同,但在用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile

if($something){ 

    include(“somefile.txt”); 

}

但不管$something取何值,下面的代码将把文件somefile包含进文件里: 

if($something){ 

    require(“somefile.txt”); 

}

6.做数据库查询操作时,应尽量避免联合操作

比起其它的Web编程语言来说,PHP的数据库功能十分强大。
但是在PHP中数据库的运行仍然是一件十分费时费力的事情,所以,作为一个Web程序员,要尽量减少数据库的查询操作,同时应该为数据库建立适当的索引。
另一件值得注意的事情是在用PHP操作数据库时,尽可能不使用多个数据表的联合操作,尽管联合操作可以增强数据库的查询功能,但是却大大增加了服务器的负担。

7.如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME']要好过于用time()函数。

8.不一定必须要面向对象,面向对象是比较耗时的。有些简单的操作还是过程的快。

9.$row['id']的速度是$row[id]的7倍

10.echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接

比如echo $str1,$str2。

11.当if…else…嵌套比较多时,应选择switch….case

12.将不用的mysql查询结果要及时地释放掉(mysql_free_result())

13.isset()和empty()的区别

两者都是测试变量用的
但是isset()是测试变量是否被赋值,而empty()是测试一个已经被赋值的变量是否为空
如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示
如果一个变量被赋空值,$foo=”"或者$foo=0或者 $foo=false,那么empty($foo)返回真,isset($foo)也返回真,就是说赋空值不会注销一个变量。

要注销一个变量,可以用 unset($foo)或者$foo=NULL

以上就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
php代码收集表单内容并写入文件的代码
Jan 29 PHP
PHP不用递归实现无限分级的例子分享
Apr 18 PHP
php修改上传图片尺寸的方法
Apr 14 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
Aug 01 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
Nov 21 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
详谈php中 strtr 和 str_replace 的效率问题
May 14 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
Apr 16 PHP
浅谈php命令行用法
Feb 04 #PHP
PHP strtotime函数用法、实现原理和源码分析
Feb 04 #PHP
php curl登陆qq后获取用户信息时证书错误
Feb 03 #PHP
ecshop实现smtp发送邮件
Feb 03 #PHP
PHP中使用php://input处理相同name值的表单数据
Feb 03 #PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
Feb 03 #PHP
四种php中webservice实现的简单架构方法及实例
Feb 03 #PHP
You might like
PHP网站基础优化方法小结
2008/09/29 PHP
js停止输出代码
2008/07/20 Javascript
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
python中的__slots__使用示例
2015/02/26 Python
Python执行时间的计算方法小结
2017/03/17 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
python和opencv实现抠图
2018/07/18 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
python读取并写入mat文件的方法
2019/07/12 Python
详解KMP算法以及python如何实现
2020/09/18 Python
Python的信号库Blinker用法详解
2020/12/31 Python
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
说一下Linux下有关用户和组管理的命令
2016/01/04 面试题
临床医师个人自我评价
2014/04/06 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
会计专业自荐信范文
2015/03/05 职场文书
2019年工作总结范文
2019/05/21 职场文书
KVM基础命令详解
2022/04/30 Servers
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL