PHP开发经验总结

原文:PHP开发经验总结

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

时间: 2024-10-01 18:58:42

PHP开发经验总结的相关文章

react-native开发经验

# **RN开发经验** ## 一.环境配置关于环境配置,前辈已有完整的总结:http://tvrn.devops.letv.com/docs/Environment.html **IDE准备:** [AndroidStudio](https://developer.android.com/studio/index.html),[VisualStudioCode](https://code.visualstudio.com/) 如何打造现代化RN开发环境:http://tvrn.devops.l

十八年开发经验分享(07)递归程序设计

这篇谈谈递归程序设计的问题.从取名上来说是想刻意区别内容的侧重点不同.上一篇是构造,其重点是从递归程序的自身结构出发,试图用一种比较直观的方法来完成递归程序的构造.这篇的重点是设计,其中的区别在于,这次是从问题本身的结构出发来完成递归程序的开发任务.上一篇中介绍的方法,比较简单直观,八股文的意味非常浓郁,并且还有一个比较大的缺点,那就是在实际使用时往往会受制与方法本身而不能解决有一定难度的问题.实际上递归是一种客观存在的现象,递归的描述问题是对客观世界的一种认识.本文从对问题的认识,描述和分析这

chrome浏览器插件开发经验(一)

chrome浏览器插件开发经验(一) 最近在进行chrome浏览器插件的开发,一些小的经验总结随笔. 1.首先,推荐360的chrome插件开发文档:http://open.chrome.360.cn/extension_dev/overview.html 2.从chrome18开始往后,chrome浏览器插件开发的 manifest.json 文件中的 "manifest_version": 2 属性就必须被显式(固定)的声明了. 3.chrome插件开发,很大程度上需要chrome

开发经验分享(一)

开发经验分享系列文章主要记录工作实际项目中遇到的问题和解决办法,希望能对大家有参考意义. 一.芯片的地址分配和变量地址的指定 芯片的存储区很小,所以要合理利用存储区,在进行地址空间的分配时就需要一定的技巧. 在进行开发时,一定要做好地址的划分. 比如CODE区的0x0000~0x8000作为COS区,接下来的0x8000~0x10000作为文件系统区,依次类推…… 在定义变量的时候,也要注意定义在了什么位置,占用的空间有多大. 比如,我们在XRAM区定义变量和数组: xdata char tem

java项目开发经验总结,值得收藏!绝对有用!

Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1.掌握项目开发的基本步骤2.具备极强的面向对象的分析与设计技巧3.掌握用例驱动.以架构为核心的主流开发方法 没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法! 关于基

让你提前认识软件开发---学长的软件开发经验总结(19)

第1部分 重新认识C语言 C语言中的协议及单元测试示例 [文章摘要] 在实际的软件开发项目中,经常要实现多个模块之间的通信,这就需要大家约定好相互之间的通信协议,各自按照协议来收发和解析消息. 本文以实际的程序代码为例,详细介绍了如何用C语言来实现通信协议,并基于对协议字段的判断,说明了程序单元测试的过程,为相关的开发工作提供了有益的参考. [关键词] 软件开发  协议  单元测试  C语言  字段 一.软件模块之间的协议 什么是软件模块之间的协议?不同的软件模块之间要实现相互通信,就必须遵循共

让你提前认识软件开发---学长的软件开发经验总结(18)

第1部分 重新认识C语言 C语言中常用的文件操作函数总结及使用方法演示代码 在C语言中,有关文件操作的函数多达数十种,但并非每个函数都经常会被用到.        本文对实际软件开发项目中常用的C文件操作函数的用法进行了总结,并用实际的C代码来演示了它们的用法. 1. C语言中常用的文件操作函数总结 (1) fopen 作用:打开文件. 表头文件:#include <stdio.h> 定义函数:FILE *fopen(const char *path, const char *mode); 函

web移动端开发经验总结

整理web移动端开发经验,部分内容借鉴于网上的博文. 1.meta标签 <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0;" /> <!-- width可视宽度,initial-scale初始化缩放比例,maximum-scale允许用户缩放的最大比例,minimum-scale允许用户缩放的最小

iOS 开发经验总结

iOS 开发经验总结http://www.cocoachina.com/ios/20170216/18699.html 1.cocoa pods 常用的framework 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 platform :ios, '7.0' target 'store' do pod 'AFNetworking', '~> 3.1.0' pod 'JSONKit', '~> 1.5pre' pod 'MBPr

三年以上php开发经验常见面试题

一般有三年以上php开发经验去百度.腾讯面试,常会接触的面试题小总结一下: 0.简单做一下自我介绍,? 然后谈一下近三年来你的得意之作? 1.面试官看过你的简历,会问一些你做的项目的用户量.pv.吞吐量.相关难点和解决方法等 2.数据库设计经验,为什么进行分表? 分库? 一般多少数据量开始分表? 分库? 分库分表的目的? 什么是数据库垂直拆分? 水平拆分? 分区等等?可以举例说明 3.数据库优化有哪些? 分别需要注意什么? 4.web开发方面会遇到哪些缓存? 分别如何优化? 5.给你256M的内