关于echo出字符串的问题

假如字符串有一个变量,需要输出变量的值。

<?php
$a=' hello';
echo "my name  is $a";

还有一种方式:

$a=' hello';
echo "my name  is {$a}";

有时候在动态使用变量名的时候也会有这两种方式:
$this->{$property} = $argument或者$this->$property
这两种效果都是一样的,但是到底有啥区别呢?

阅读 4.7k
5 个回答

没什么太大的区别,用花括号只是方便PHP解析的时候认准变量而已..比如你可以试试:

$a = "hello";
echo "$aworld";
echo "{$a}world";

也就是界定变量的,当一个变量名是另一个变量名前面部分的时候加{}才能得到你想要的

$a='hello ';
$aword=' word';
echo "my name  is $aword";  //my name  is word
echo "<br/>";
echo "my name  is {$a}word";  //my name  is hello word

在用echo的时候,大括号{}只能在双引号中使用

和bash中类似,区分变量和字符串

//只是为了区别变量而已,如下:
$a = "he";
//如果这样,你的变量$allo是不存在的
echo "$allo";
//所以,需要加一个定界符来加区分
echo "{$a}llo";
//echo  hello
//这种情况只在双引号后中有用。如果你需要打印的变量前面没有英文或容易混淆变量的情况下可以不用的。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题