在PHP中,您可以直接在(双引号)字符串中嵌入数组,但看起来有两种方法可以实现;例如:
$arr[0]="foobar";
echo "${arr[0]}";
echo "{$arr[0]}";
他们似乎都工作,但有什么区别?还是更好吗?
(由于谷歌缺乏特殊字符支持而难以查看,但我看到这两种格式都在使用中。)
答案 0 :(得分:2)
根据PHP documentation on Strings,"${arr[0]}"
和"{$arr[0]}"
都显示为有效示例。但是,在此之后,仅使用"{$arr[0]}"
语法。所以你会假设,这是“首选”语法。
答案 1 :(得分:1)
他们都不是"更好"。它们只是用略微不同的语法表达的相同内容。查看有关字符串解析的手册页:http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing。这是一个非常好的文档页面,没什么好说的。
答案 2 :(得分:0)
两者都有效,因为两者都有效。来自the manual:
复杂(卷曲)语法
这并不称为复杂,因为语法很复杂,但是因为 它允许使用复杂的表达式。
带字符串的任何标量变量,数组元素或对象属性 可以通过此语法包含表示。简单地写一下 表达式与字符串外部的表达方式相同,并且 然后将其包装在{和}中。由于{无法转义,因此将使用此语法 只有当$紧跟{时才会被识别。使用{\ $ to 得到一个文字{$。
// Won't work, outputs: This is { fantastic}
echo "This is { $great}";
// Works, outputs: This is fantastic
echo "This is {$great}";
echo "This is ${great}";
// Works
echo "This square is {$square->width}00 centimeters broad.";
// Works, quoted keys only work using the curly brace syntax
echo "This works: {$arr['key']}";