在变量中使用花括号在PHP中的良好实践

Tec*_*lco 7 php coding-style

一些开发人员在他们的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%) - 双引号比单引号更快 - 我本来预计它会反过来.


hak*_*kre 6

要求最佳实践是没用的,因为你还没有写出你喜欢哪种风格.如果它可以帮助你用大括号读取你的字符串,使用它们,它们工作.有多种方法可以解决这个问题,仅举几例:

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)

选择适合您的内容.在做的过程中学到的最佳实践.该语言是一种适合您需求的工具.