$var 和 ${var} 之间有什么区别吗?


Is there any differences between $var and ${var}

这两个"拼写"等价吗?只是想知道。

脱离

上下文${var}可能是正确的,也可能是不正确的。如果像 "foo ${var} bar" 一样在字符串内部使用它 - 那么它是相同的。

如果它在代码中正确使用 - 则${var}不正确,应改用${'var'}

使用${...}的有效情况包括:

  1. 字符串内部,例如 "ab${cd}e" - 当所有字母都没有空格时,"${a['b']}" - 当您将其与数组一起使用时

  2. 当您要动态组合变量名时:${'a_' . $i}

差不多。唯一的区别是您可以在大括号之间输入要解析的代码以获取"变量"变量名称。

前任。

${'t'.'e'.'s'.'t'} = 'test'; // is the same as $test = 'test';  
${substr('testaaa',0,4)} = 'test'; // the same

您甚至可以执行以下操作:

${ 'a' == 'b' ? 'Foo' : 'test' } = 'test'; //the same

它本质上与:

$var_name = substr('testaaa',0,4);
$$var_name = 'test';