我有点混淆
$hello = "hello";
echo "Say $hello";
echo "Say {$hello}";
echo "Say ${hello}";
,输出相同Say hello
。我应该何时使用{$hello}
和${hello}
?为什么它不能用于单引号?
答案 0 :(得分:3)
$animal = 'cat';
echo "I have 14 $animals";
这可能会导致问题,因此你会“逃避”它
echo "I have 14 ${animal}s";
或
echo "I have 14 {$animal}s";
在单个引起的变量/表达式从未替换。
答案 1 :(得分:0)
单引号字符串永远不会扩展PHP中的变量。参见:
http://php.net/manual/en/language.types.string.php
有关PHP中字符串格式的更多详细信息。总共有4个(包括PHP 5.3中引入的nowdoc)。只有双引号和heredoc字符串格式才能扩展变量。
答案 2 :(得分:0)
根据http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing, 这是一个简单的语法:
echo "Say ${hello}";
这是一个卷曲的语法:
echo "Say {$hello}";
为什么它们都输出相同的?在PHP中使用Becaus,您可以在所需的每个位置使用变量变量。例如:
$var = 'somevar';
$bar = 'var';
echo $$bar; // "somevar", simple variable variable
echo ${$bar}; // "somevar", complex syntax
echo ${bar}; // "var", because {bar} treated as a string constant:
// Notice: Use of undefined constant bar - assumed 'bar'
因此,使用变量变量语法${hello}
只需转换为$hello
。