这是在字符串中写入数组元素的正确方法


Which is the correct way to write array elements in string?

考虑这样一个数组:

$array = array('a' => 1, 0 => 1);

如果我将$array['a']放入字符串中,我应该使用:

"{$array['a']} {$array[0]}"
or
"$array[a] $array[0]"

还是没有什么区别?(注意,两个字符串都将打印"1 1",它们的工作方式相同)

我想知道哪一个更常用,为什么(比如更容易读,更快的解析,等等)。

如果你用另一种方式写,请解释为什么它比我给出的更好。
"{$array['a']} {$array[0]}"

"".$array['a']." ".$array[0].""

很简单

$str = "hello ".$array['a']." what's up?";

都不是——为了可维护性,使用类似于

的东西会更好
'{'.$array['a'].'} {'.$array[0].'}' 

请注意,这里的括号只有在您实际需要它们出现在输出中时才会出现。

第二个选项将工作,只要数组的键内的字符串不加引号。考虑像这样的显式连接来提高可读性:

"blah ".$array[0]." blah"

(其变体为"blah", $array[0]," blah")