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实现计算两个日期间隔的年、月、周、日数
Jun 13 PHP
基于PHPExcel的常用方法总结
Jun 13 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
CodeIgniter基本配置详细介绍
Nov 12 PHP
zf框架的session会话周期及次数限制使用示例
Mar 13 PHP
php判断文件夹是否存在不存在则创建
Apr 09 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
Apr 15 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
Yii中表单用法实例详解
Jan 05 PHP
php实现图片上传、剪切功能
May 07 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 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
2006/10/09 PHP
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
php获取ip及网址的简单方法(必看)
2017/04/01 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
Javascript实现运算符重载详解
2018/04/07 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
详解python3百度指数抓取实例
2016/12/12 Python
详解django中自定义标签和过滤器
2017/07/03 Python
Python切割图片成九宫格的示例代码
2020/03/10 Python
python selenium xpath定位操作
2020/09/01 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
内业资料员岗位职责
2014/01/04 职场文书
原材料检验岗位职责
2014/03/15 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
2014年化验室工作总结
2014/11/21 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
python使用pymysql模块操作MySQL
2021/06/16 Python