这两者之间的区别.


The difference between these two...?

我第一次搜索如何使用PHP连接数据库时,偶然发现了这个例子:

mysql_connect("$host", "$username", "$password");

但这和这个有什么区别?

mysql_connect($host, $username, $password);

"$var"完全是无稽之谈。这是一个值为$var的字符串。如果该字符串除了$var之外不包含任何内容,则它与$var:相同

$var = "foo";
$nonsense = "$var"; // → "foo"

"$var" == $var。按原样使用$var,无需将其封装在字符串中。它也更快。

唯一的区别是,在第一行中,PHP需要处理字符串,并检查其中是否有变量,并用它们各自的值替换变量。

你可以在这里阅读更多信息:

http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing

编辑

但如前所述,输出将是相同的。

实际上与用户视角没有区别。双引号中的变量将被求值,因此;

$hello="world";
$world="hello"; 
echo "$hello $world"

将打印"世界你好"。

此功能允许您进行

"$very $annoying $string"而不是$very." ".$annoying." ".$string

这就像shell脚本(如果您熟悉shell脚本)。

它的结果将完全相同!所以不用担心。但是如果你应该在它们之间做出选择,你应该选择第二个。

$var = "World"
echo "Hello $var" // Output "Hello World"
echo 'Hello $var' // Output "Hello $var"

双引号替换可变内容。

如果你有一个数组,你必须做更多的事情:

$var = array("World")
echo "Hello {$var[0]}" // Output "Hello World"

注意$var[0]之间的尖括号{}

除非第二个数据类型不是string,否则结果没有差异。

php中的第一个"$string"被解析为"valueofstring"。PHP消除了在必须插入字符串文字时连接字符串的压力。

"something" . $string . "somethingelse" 
"something{$string}somethingelse"

两者都是一样的。

为了在较长的字符串中清晰起见,建议您将大括号{}用作"{$string}"

第一个是将字符串传递到连接,就好像$username是您的实际用户名一样,第二个是传递变量$username的值,该值将等于之前使用$username="myUsername"设置的值