PHP网站开发了53个实用编程技巧合集
单引号代替双引号并包含字符串,这样会更快。由于 PHP 会查找用双引号括起来的字符串中的变量,因此引号不会查找。注:只有echo才能做到这一点。这是一个可以接受多个字符串作为参数的“函数”(译注:PHP手册他们说echo是一种语言结构,而不是真正的函数,所以函数用双引号括起来)。
1。如果你可以将类方法定义为静态,尝试将它们定义为静态,你的速度将提高近 4 倍。
2。 $row['id'] 比 $row[id] 快七倍。
3。 echo 比 print 更快,并且使用更多 echo 的参数(翻译:使用逗号而不是句点)而不是字符串连接,如 echo $str1, $str2。
4。定义执行 for 循环之前的最大循环次数。不要计算每个循环的最大值。最好使用 foreach 来代替。
5。取消注册未使用的变量(尤其是大型数组)以释放内存。
6。尽量避免使用__get、__set、__autoload。
7。 request_once() 很昂贵。
8。包含文件时尝试使用绝对路径,因为这样可以避免 PHP 寻找 include_path 文件并花费更少的时间解析操作系统路径。
9。如果你想知道脚本何时启动(注意:服务器收到客户端请求),最好使用 $_SERVER['REQUEST_TIME'] 而不是 time()。
10。函数代替正则表达式来执行相同的功能。
11。 str_replace 函数比 preg_replace 函数更快,但 strtr 函数的效率是 str_replace 函数的四倍。
12。如果字符串替换函数可以接受数组或字符作为参数,并且参数长度不太长,则可以考虑编写额外的替换代码,以便传递的每个参数都是单个字符而不是单行。该代码接受数组作为参数来查询和替换。
13。最好使用选择性分支语句(翻译注:switch case)而不是多个 if、else if 语句。
14。用@来屏蔽错误信息是非常低效的,极其低效的。
15。打开apache的mod_deflate模块可以提高网页浏览速度。
16。使用完数据库连接后应将其关闭。不要使用长连接。
17。错误消息的代价是昂贵的。
18。在方法中增加局部变量是最快的。几乎与在函数中调用局部变量一样快。
19。递增全局变量的速度是递增局部变量的两倍。
20。递增对象属性(例如:$this->prop++)比递增局部变量慢 3 倍。
21。递增未定义的局部变量比递增预定义的局部变量慢 9-10 倍。
22。定义局部变量而不在函数中调用它也会减慢速度(与递增局部变量一样)。 PHP 可能会检查全局变量是否存在。
使用单引号而不是双引号将字符串括起来,会更快。由于 PHP 会查找用双引号括起来的字符串中的变量,因此引号不会查找。注:只有echo才能做到这一点。这是一个可以接受多个字符串作为参数的“函数”(译注:PHP手册他们说echo是一种语言结构,而不是真正的函数,所以函数用双引号括起来)。
1。如果你可以将类方法定义为静态,尝试将它们定义为静态,你的速度将提高近 4 倍。
2。 $row['id'] 比 $row[id] 快七倍。
3。 echo 比 print 更快,并且使用更多 echo 的参数(翻译:使用逗号而不是句点)而不是字符串连接,如 echo $str1, $str2。
4。定义执行 for 循环之前的最大循环次数。不要计算每个循环的最大值。最好使用 foreach 来代替。
5。取消注册未使用的变量(尤其是大型数组)以释放内存。
6。尽量避免使用__get、__set、__autoload。
7。 request_once() 很昂贵。
8。包含文件时尝试使用绝对路径,因为这样可以避免 PHP 寻找 include_path 文件并花费更少的时间解析操作系统路径。
9。如果你想知道脚本何时启动(注意:服务器收到客户端请求),最好使用 $_SERVER['REQUEST_TIME'] 而不是 time()。
10。函数代替正则表达式来执行相同的功能。
11。 str_replace 函数比 preg_replace 函数更快,但 strtr 函数的效率是 str_replace 函数的四倍。
12。如果字符串替换函数可以接受数组或字符作为参数,并且参数长度不太长,则可以考虑编写额外的替换代码,以便传递的每个参数都是一个字符而不是一行。该代码接受数组作为参数来查询和替换。
13。最好使用选择性分支语句(翻译注:switch case)而不是多个 if、else if 语句。
14。用@来屏蔽错误信息是非常低效的,极其低效的。
15。打开apache的mod_deflate模块可以提高网页浏览速度。
16。使用完数据库连接后应将其关闭。不要使用长连接。
17。错误消息的代价是昂贵的。
18。在方法中增加局部变量是最快的。几乎与在函数中调用局部变量一样快。
19。递增全局变量的速度是递增局部变量的两倍。
20。递增对象属性(例如:$this->prop++)比递增局部变量慢 3 倍。
21。递增未定义的局部变量比递增预定义的局部变量慢 9-10 倍。
22。定义局部变量而不在函数中调用它也会减慢速度(与递增局部变量一样)。 PHP 可能会检查全局变量是否存在。
if (strlen($foo) (与下面的技巧进行比较)
$fo (!isset) {5 })) {Putyn “Foo 很短”$$ }
调用 isset() 恰好比 strlen() 更快,因为与后者不同,isset() 作为一种语言构造意味着它的执行不需要函数搜索和小写字母。这意味着我们实际上并没有在顶级代码上花费太多时间来检查字符串的长度。
34。当递增或递减变量 $i 时,$i++ 将比 ++$i 慢。这种差异是 PHP 特有的,不适用于其他语言,因此请不要修改您的 C 或 Java 代码并期望它立即变得更快,因为这是行不通的。 ++$i 更快,因为它只需要 3 条指令(操作码),而 $i++ 需要 4 条指令。后递增实际上创建了一个随后递增的临时变量。前缀增量直接从原始值增加。这是一种优化形式,就像 Zend 的 PHP 优化器所做的那样。记住这种优化是个好主意,因为并非所有命令优化器都执行相同的优化,并且许多 Internet 服务提供商 (ISP) 和服务器没有命令优化器。
35。它不必是面向对象的(OOP)。面向对象往往非常昂贵,每个方法和对象调用都会消耗大量内存。
36。没有必要使用类来实现所有数据结构。数组也非常有用。
37。不要过多地分解方法。仔细想想你真正想重用哪些代码?
38。如果需要,您始终可以将代码分解为方法。
39。尝试使用大量 PHP 内置函数。
40。如果代码中有很多耗时的函数,您可以考虑使用 C 扩展来实现它们。
41. 分析您的代码。检查器会告诉您代码的哪些部分花费了多少时间。 Xdebug 调试器包括检查例程,用于评估代码的整体完整性并揭示代码中的瓶颈。
42. mod_zip 可作为 Apache 模块,即时压缩数据,减少 80% 的数据传输量。
43。当file_get_contents可以用来替代file、fopen、feof、fgets等方法时,尝试使用file_get_contents,因为它效率要高得多!但打开URL文件时请注意file_get_contents PHP版本的问题;
44。执行尽可能少的文件操作,虽然PHP的文件处理效率不低;
45。如果可能,优化 Select SQL 语句 在给定情况下执行尽可能少的插入和更新操作(我收到了关于更新的批评);
46。尽可能使用PHP的内部函数(但我浪费了很多钱试图找到PHP中不存在的函数。编写自定义函数需要更少的时间,这是一个经验问题!);
47。不要在循环内声明变量,尤其是大变量:对象(显然这不仅仅是 PHP 中需要注意的问题,对吧?);
48。尽量不要在多维数组中嵌套嵌套赋值;
49。如果可以使用 PHP 内部的字符串操作函数,就不要使用正则表达式;
50。 foreach 效率更高,尝试用 foreach 代替 while 和 for 循环;
51。要引用字符串,请使用单引号而不是双引号;
52。 “使用 i+=1 而不是 i=i+1。它遵循 c/c++ 约定,效率更高。” ;
53。对于全局变量,使用后必须将其停用。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。