我今天意外地测试了这个,有谁能向我解释为什么这会起作用,它是什么?
$a = array(
array(
'download' => '1500k'
)
);
echo "Test-{$a[0]['download']}";
输出:测试-1500K
我今天意外地测试了这个,有谁能向我解释为什么这会起作用,它是什么?
$a = array(
array(
'download' => '1500k'
)
);
echo "Test-{$a[0]['download']}";
输出:测试-1500K
双引号将字符串评估为表达式,并从中提取变量并将它们的值替换。但单引号显示字符串,因为是。
如果你想了解更多的细节,你可以看到this答案在SO。
感谢您的解释和链接......这将帮助我很多:D –
您的代码:
echo "Test-{$a[0]['download']}";
是一样的:
echo "Test-".$a[0]['download'];
{} \只是包装阵列项目$a[0]['download']
字符串放它的值有
哦,我c ...非常感谢信息:) ...它真的让我不知道代码如何工作...:D –
在双引号字符串的上下文中,变量可以简单地按名称插入,但这对插入数组值不起作用,所以需要花括号来让PHP知道数组值是作为一个整体被插入到字符串中。
在你的例子中,如果你删除花括号,你会发现它会抛出一个错误,这是因为PHP无法知道[0] ['download']部分不只是一个字符串。它抛出一个数组到字符串转换错误。
所以这就是为什么花括号是必要的。
感谢这样: ) –
它是[复杂(卷曲)语法](http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex)。如果您在双引号内使用大括号,PHP会将这些大括号内的整个字符串评估为一个变量,然后打印出结果。它允许你包含更复杂的变量,如'echo“,我的第一个孩子是{$ this-> child(0) - > firstName}”;' – Luke
感谢这个另外的信息@Luke:D –