加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:36:28 所属栏目:PHP教程 来源:网络整理
导读:参见英文答案 Curly braces in string in PHP5个 有时您需要清楚PHP是什么实际的变量名.我发现一个同事和我一直在做点差别. 假设你有一个变量$foo,并希望输出附加的_constant_string 我一直在使用 return "input type='hidden' name='${foo}_constant_string
参见英文答案 > 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读