Php {$var}和$var有什么区别?

Php {$var}和$var有什么区别?,php,string,variables,substitution,Php,String,Variables,Substitution,我想知道何时以及为什么要使用{$var} echo "This is a test using {$var}"; 什么时候(为什么)我应该使用简单的$var格式 echo "This is a test using $var"; 当a)不访问对象或数组以获取值,以及b)变量名后面没有可能被解释为变量名一部分的字符时,可以使用后者。如果写入 echo“这是一个使用$vars的测试” 结果文本中没有$var的内容 如果你写信 echo“这是一个使用{$var}s的测试” 一切都会好起来的 另外,

我想知道何时以及为什么要使用{$var}

echo "This is a test using {$var}";
什么时候(为什么)我应该使用简单的$var格式

echo "This is a test using $var";

当a)不访问对象或数组以获取值,以及b)变量名后面没有可能被解释为变量名一部分的字符时,可以使用后者。

如果写入

echo“这是一个使用$vars的测试”

结果文本中没有$var的内容

如果你写信

echo“这是一个使用{$var}s的测试”

一切都会好起来的

另外,它只适用于“”,不适用于“”。

为了在数组中使用变量,必须解析 歧义问题。也就是说,如果你 写入$$a[1],然后解析器需要 知道您是否打算将$a[1]用作 变量,或者如果希望$$a作为 变量,然后从 这个变量。的语法 解决此歧义的方法是:${$a[1]} 对于第一种情况,${$a}[1]对于 第二个


括号允许您在某些特殊情况下消除PHP解析器的歧义。 在你的情况下,它们是等价的

但是请考虑这一点:

$foobar = 'hello';
$foo = 'foo';
echo "${$foo . 'bar'}"; // hello
如果没有括号,您将无法获得预期结果:

echo "$$foo . 'bar'"; // $foo . 'bar'

不过,为了清楚起见,我强烈建议不要使用这种语法。

符号
{}
对于在字符串中嵌入多维数组也很有用

e、 g

将被解析为

$text = "This " . $array[1] . "[2] has two dimensions";
最后你会看到文本

This Array[2] has two dimensions
但如果你这样做了

$text = "This {$array[1][2]} has two dimensions";
你最终得到了预期的结果

This square has two dimensions.

如果$var=“bla”将输出“这是一个使用blas的测试”,那么我认为您是错的。@sica07这里第一种情况中的$vars没有定义,因此它将抛出一个PHP通知:Undefined variable:vars。但是,如果您已经定义了它,它将以双引号的形式回显。{$var}确保定义了$var,就像分离需要组合的变量和字符串一样
This square has two dimensions.