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

亚当

有时您需要向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)。

雅库布·马察克(Jakub Matczak)

看来,任何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/zh-CN/language.types.string.php#language.types.string.parsing.complex

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

<%= foo%>和$ {foo}之间的区别

来自分类Dev

<%= foo%>和$ {foo}之间的区别

来自分类Dev

(?=。* foo \ b)和(?=。* foo)\ b之间的区别

来自分类Dev

“ function foo(){}”和“ foo(){}”之间的区别

来自分类Dev

$ foo [bar]和$ foo ['bar']在php中的区别

来自分类Dev

@ foo,self.foo和foo之间的区别?

来自分类Dev

js中的“ foo.bar”和“ foo ['bar']”之间的区别

来自分类Dev

var foo = function(){...}()和var foo =(function(){...}())之间的区别

来自分类Dev

别名foo bar和foo = bar之间的区别

来自分类Dev

Session(“ foo”)=“ test”和Cstr(Session(“ foo”)=“ test”之间的区别

来自分类Dev

&foo :: function和foo :: function有什么区别?

来自分类Dev

Bash中的`declare foo`和`foo =`有什么区别?

来自分类Dev

ifeq($ {foo),)和ifndef foo有什么区别

来自分类Dev

$ foo === TRUE和TRUE === $ foo有什么区别

来自分类Dev

my $ foo和my($ foo)有什么区别?

来自分类Dev

ifeq($(foo),)和ifndef foo有什么区别

来自分类Dev

使用params [:foo]和@foo有什么区别?

来自分类Dev

Bash 中的 `declare foo` 和 `foo=` 有什么区别?

来自分类Dev

为什么resolve(“。/ .. / ....”)和resolve(“ foo”)之间有区别

来自分类Dev

方法调用语法`foo.method()`和UFCS`Foo :: method(&foo)`有什么区别?

来自分类Dev

python中装饰器中的foo=bar(foo)和something=bar(foo)有什么区别?

来自分类Dev

`foo()的yield和foo()中的x的区别:yield x`

来自分类Dev

java中foo(int)和foo(Integer)的区别

来自分类Dev

使用哪个:foo和foo:

来自分类Dev

git分支“ foo”和“ foo / bar”不起作用吗?

来自分类Dev

“按foo,bar排序”和“按(foo,bar)排序”(带括号)之间的区别

来自分类Dev

super(Foo,self)和super(Foo,self .__ class__)之间的区别?

来自分类Dev

git rebase foo bar和git checkout bar之间的区别;git rebase foo`?

来自分类Dev

TypeScript中的类型化数组-Array <Foo>和Foo []有什么区别?

Related 相关文章

  1. 1

    <%= foo%>和$ {foo}之间的区别

  2. 2

    <%= foo%>和$ {foo}之间的区别

  3. 3

    (?=。* foo \ b)和(?=。* foo)\ b之间的区别

  4. 4

    “ function foo(){}”和“ foo(){}”之间的区别

  5. 5

    $ foo [bar]和$ foo ['bar']在php中的区别

  6. 6

    @ foo,self.foo和foo之间的区别?

  7. 7

    js中的“ foo.bar”和“ foo ['bar']”之间的区别

  8. 8

    var foo = function(){...}()和var foo =(function(){...}())之间的区别

  9. 9

    别名foo bar和foo = bar之间的区别

  10. 10

    Session(“ foo”)=“ test”和Cstr(Session(“ foo”)=“ test”之间的区别

  11. 11

    &foo :: function和foo :: function有什么区别?

  12. 12

    Bash中的`declare foo`和`foo =`有什么区别?

  13. 13

    ifeq($ {foo),)和ifndef foo有什么区别

  14. 14

    $ foo === TRUE和TRUE === $ foo有什么区别

  15. 15

    my $ foo和my($ foo)有什么区别?

  16. 16

    ifeq($(foo),)和ifndef foo有什么区别

  17. 17

    使用params [:foo]和@foo有什么区别?

  18. 18

    Bash 中的 `declare foo` 和 `foo=` 有什么区别?

  19. 19

    为什么resolve(“。/ .. / ....”)和resolve(“ foo”)之间有区别

  20. 20

    方法调用语法`foo.method()`和UFCS`Foo :: method(&foo)`有什么区别?

  21. 21

    python中装饰器中的foo=bar(foo)和something=bar(foo)有什么区别?

  22. 22

    `foo()的yield和foo()中的x的区别:yield x`

  23. 23

    java中foo(int)和foo(Integer)的区别

  24. 24

    使用哪个:foo和foo:

  25. 25

    git分支“ foo”和“ foo / bar”不起作用吗?

  26. 26

    “按foo,bar排序”和“按(foo,bar)排序”(带括号)之间的区别

  27. 27

    super(Foo,self)和super(Foo,self .__ class__)之间的区别?

  28. 28

    git rebase foo bar和git checkout bar之间的区别;git rebase foo`?

  29. 29

    TypeScript中的类型化数组-Array <Foo>和Foo []有什么区别?

热门标签

归档