PHP:{$foo}和${foo} 之间有区别

前端之家收集整理的这篇文章主要介绍了PHP:{$foo}和${foo} 之间有区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Curly braces in string in PHP5个
有时您需要清楚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}");

测试:https://3v4l.org/vMO2D

无论如何,我更喜欢“{$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

原文链接:https://www.f2er.com/php/132533.html

猜你在找的PHP相关文章