一些开发人员在他们的PHP代码中使用花括号,有些只是将它们连接起来.
例如,这两行代码在PHP中完全有效
echo "<h1>{$row['title']}</h1>";
echo "<h1>" . $row['title'] . "</h1>";
Run Code Online (Sandbox Code Playgroud)
代码的输出在末尾是相同的,但哪一个被认为是一个很好的编码实践?
谢谢你,J
Dav*_*dom 12
使用大括号语法稍慢.考虑以下测试:
<?php
$array = array('key'=>'val');
$start1 = microtime(TRUE);
for ($i = 0; $i < 100000; $i++) {
$str = "<tag>{$array['key']}</tag>";
}
$end1 = microtime(TRUE);
$result1 = $end1 - $start1;
$start2 = microtime(TRUE);
for ($j = 0; $j < 100000; $j++) {
$str = "<tag>".$array['key']."</tag>";
}
$end2 = microtime(TRUE);
$result2 = $end2 - $start2;
$start3 = microtime(TRUE);
for ($k = 0; $k < 100000; $k++) {
$str = '<tag>'.$array['key'].'</tag>';
}
$end3 = microtime(TRUE);
$result3 = $end3 - $start3;
echo "1: $result1\n2: $result2\n3: $result3\n";
?>
Run Code Online (Sandbox Code Playgroud)
在我的PHP/5.2.19-win32系统上,第一个测试(带花括号)稍慢(~7%).然而,差异是如此之小,以至于不值得担心,我会说做任何你最舒服的事情.
稍微违反直觉,第二次测试一直比第三次测试快(~2%) - 双引号比单引号更快 - 我本来预计它会反过来.
要求最佳实践是没用的,因为你还没有写出你喜欢哪种风格.如果它可以帮助你用大括号读取你的字符串,使用它们,它们工作.有多种方法可以解决这个问题,仅举几例:
echo "<h1>{$row['title']}</h1>";
echo "<h1>" . $row['title'] . "</h1>";
echo "<h1>", $row['title'], "</h1>";
printf("<h1>%s</h1>", $row['title']);
echo sprintf("<h1>%s</h1>", $row['title']);
?><h1><?php echo $row['title']; ?></h1><?php # thx, Jaime :)
...
Run Code Online (Sandbox Code Playgroud)
选择适合您的内容.在做的过程中学到的最佳实践.该语言是一种适合您需求的工具.