2011-06-24 62 views
1

第一次我搜索了如何用PHP连接到数据库,我已经在这个例子中偶然发现:这两个之间的区别...?

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

但是那是什么,这之间的区别?

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

回答

1

实际上没有区别形成用户视角。双引号中的变量将被评估,所以;

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

将打印“世界你好”。

此功能允许你做的

"$very $annoying $string" 代替 $very." ".$annoying." ".$string

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

+0

这是我最容易理解的答案。我会接受这个。谢谢你澄清这一点。您还帮助我减少了字符串文字中的点数量。 – Vercas

-1

第一你只是路过的字符串连接,如同$的用户名是您的实际用户名,后者你传递变量$的用户名,这将等于在用$更早的时候什么已设置的值username =“myUsername”

+1

引用的变量是在PHP蒙上他们作为字符串,虽然他们已经是字符串。这只是一个冗余。如果它们是单引号而不是双引号,那么用户名字面上应该是'$ username' –

+0

啊,我虽然需要用{}包围它们,以便将它识别为字符串。很长一段时间.. – TheRealTy

0

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

3

"$var"是完全废话。这是一个值为$var的字符串。如果字符串不包含任何东西,但$var,它等同于$var

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

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

+3

作为一个补充答案(不相关),只有当你想在一个字符串中使用'$ var'时才使用'“$ var”'。 '“你好,我的名字是$ name!”'相当于''你好,我的名字是'。 $名称。 '!''。 – SteeveDroz

+2

作为补充扩展,如果'$ var'不是一个字符串,它将被转换为一个字符串,这可能会改变该值(例如数组)。尽管如此,你通常不会对数组做这样的事情,所以几乎所有的时候它都是无用的。如果你想明确地转换成字符串,通常首选'(string)$ var'。 – deceze

0

结果没有区别,除非在第二个不是数据类型string

PHP中的第一个"$string"被解析为获得“valueofstring”。当你不得不插入字符串时,PHP消除了串联字符串的压力。

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

两者都是相同的。

为了清楚更长的字符串,建议您使用大括号{}作为"{$string}"

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

双引号替换变量内容。

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

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

注意尖括号{} betwenn是$ var [0]