PHP 性能优化技巧
在 Google 的 Google Code 所制作的 "Let's make the web faster"(让我们使 Web 运行得更快)网站中,分享了一些网页性能优化的技巧、教程以及工具。信息来源:LSY
一、不要随意复制变量
有时候,为了让 PHP 代码看起来更加整洁,一些 PHP 新手(包括我自己)会将预定义好的变量复制到一个名称更简短的变量中。然而,这样做的结果是会增加一倍的内存消耗,进而导致程序运行速度变慢。想象一下,在以下例子中,如果用户恶意将 512KB 的内容插入到文本输入框中,将会消耗 1MB 的内存!
错误示例(BAD):
$description = $_POST['description'];
echo $description;
正确示例(GOOD):
echo $_POST['description'];
二、对字符串使用单引号
PHP 引擎允许使用单引号和双引号来包含字符串变量,但二者存在很大差别。使用双引号时,PHP 引擎会先读取字符串内容,查找其中的变量,并将其替换为相应的值。一般情况下,字符串中通常没有变量,所以使用双引号会影响性能。建议使用字符串连接而不是双引号来表示字符串。
错误示例(BAD):
$output = "This is a plain string";
正确示例(GOOD):
$output = 'This is a plain string';
错误示例(BAD):
$type = "mixed";
$output = "This is a $type string";
正确示例(GOOD):
$type = 'mixed';
$output = 'This is a '. $type.' string';
三、使用 echo 函数输出字符串
使用 echo() 函数输出结果不仅更易于阅读,而且在性能方面表现更好,如下例所示。
错误示例(BAD):
print($myVariable);
正确示例(GOOD):
echo $myVariable;
四、避免在 echo 中使用连接符
许多 PHP 程序员(包括我自己)可能不知道,在输出多个变量时,其实可以使用逗号将它们分隔开,而不必先使用字符串将它们连接起来。在下面的第一个示例中,由于使用了连接符,会产生性能问题,因为这会使 PHP 引擎首先将所有变量连接起来,然后再输出;而在第二个示例中,PHP 引擎会按顺序输出它们。
错误示例(BAD):
echo 'Hello, my name is'. $firstName. $lastName. ' and I live in '. $city;
正确示例(GOOD):
echo 'Hello, my name is', $firstName, $lastName, ' and I live in ', $city;
五、使用 switch/case 代替 if/else
对于仅涉及单个变量的判断,使用 switch/case 语句会比 if/else 语句具有更好的性能,并且代码的可读性和可维护性更强。
错误示例(BAD):
if($_POST['action'] == 'add') {
addUser();
} elseif ($_POST['action'] == 'delete') {
deleteUser();
} elseif ($_POST['action'] == 'edit') {
editUser();
} else {
defaultAction();
}
正确示例(GOOD):
switch($_POST['action']) {
case 'add':
addUser();
break;
case 'delete':
deleteUser();
break;
case 'edit':
editUser();
break;
default:
defaultAction();
break;
}
「倘若有所帮助,不妨酌情赞赏!」
感谢您的支持!
使用微信扫描二维码赞赏
看了挺有收获的,那个echo,单引号和switch都知道,不过复制变量和逗号分隔输出就不知道了
重新看到 再学习。。。