我应该在字符串中使用大括号还是连接变量?

Mic*_*yen 44 php concatenation curly-braces

直截了当的问题:在字符串中连接变量或使用花括号是否有利有弊?

级联:

$greeting = "Welcome, " . $name . "!";
Run Code Online (Sandbox Code Playgroud)

大括号:

$greeting = "Welcome, {$name}!";
Run Code Online (Sandbox Code Playgroud)

就个人而言,我总是连接我的字符串因为我使用UEStudio并且在连接时突出显示PHP变量的不同颜色.但是,当变量未被分解时,它不会.它只是让我的眼睛更容易在长字符串中找到PHP变量等.

编辑:人们对于关于SQL的问题感到困惑.这不是这个问题的内容.我已经更新了我的例子以避免混淆.

Ami*_*ara 46

如果查看输出,以下所有内容都会相同.

  1. $greeting = "Welcome, " . $name . "!";
  2. $greeting = 'Welcome, ' . $name . '!';
  3. $greeting = "Welcome, $name!";
  4. $greeting = "Welcome, {$name}!";

您不应该使用选项1,而是使用选项2.选项3和4都是相同的.对于一个简单的变量,大括号是可选的.但是如果你使用数组元素,你必须使用大括号; 例如:$greeting = "Welcome, {$user['name']}!";.因此,作为标准,如果使用变量插值而不是连接,则使用大括号.

但是如果使用tab(\t),new-line(\n)等字符,它们必须在双引号内.

通常,变量插值很慢,但如果连接的变量太多,则连接也可能会变慢.因此,根据其他字符中的变量数来决定.

  • 数组元素不需要大括号.只需取出单引号:$ greeting ="Welcome,$ user [name]"; 这是$ user [name]唯一不会产生通知的时间. (6认同)
  • 哇,真的.@mririgo单引号微优化神话已被彻底揭穿[debunked](http://stackoverflow.com/questions/3446216/difference-between-single-quote-and-double-quote-string-in-php).除非你有2GB的PHP脚本,其中包含数百万个字符串,否则你将无法测量它 - 因为它只存在于tokenizer中.使用xdebug并找到真正优化的东西. (4认同)