2011-06-24 98 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]