参见英文答案 >
Curly braces in string in PHP5个
有时您需要清楚PHP是什么实际的变量名.我发现一个同事和我一直在做点差别.
假设你有一个变量$foo,并希望输出附加的_constant_string
我一直在使用
有时您需要清楚PHP是什么实际的变量名.我发现一个同事和我一直在做点差别.
假设你有一个变量$foo,并希望输出附加的_constant_string
我一直在使用
return "<input type='hidden' name='${foo}_constant_string' value='true' />";
而我的同事正在使用
return "<input type='hidden' name='{$foo}_constant_string' value='true' />";
(略为简化的例子).
我的快速测试没有明显的区别,但我很好奇:有什么区别吗?是否有理由选择一个呢?
编辑:
我上面的例子使用了字符串,但是我的问题比较笼统 – 我应该明确地说.我知道你可以使用花括号逃脱,但没有发现使用它们的两种方式之间(在任何情况下)差异的具体要点.我得到了答案:没有字符串(这是“重复”的帖子是关于),但是对于数组和对象(感谢@dragoste).
看来,任何PHP版本都没有区别
原文链接:https://www.f2er.com/php/132533.html$foo = 'test'; var_dump("$foo"); var_dump("{$foo}"); var_dump("${foo}");
无论如何,我更喜欢“{$foo}”,因为我认为它更易于阅读,并且在许多其他语法没有的情况下也可以使用.
作为一个例子,我们来尝试对象属性访问:
var_dump("$foo->bar"); //Syntax error var_dump("{$foo->bar}"); // works great var_dump("${foo->bar}"); //Syntax error
同样的情况就是数组.
http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing.complex