Php {$var}和$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的测试” 一切都会好起来的 另外,
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.