有时您需要向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版本都没有区别
$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/zh-CN/language.types.string.php#language.types.string.parsing.complex
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句