2012-02-29 23 views
0

我有點與

$hello = "hello"; 
echo "Say $hello"; 
echo "Say {$hello}"; 
echo "Say ${hello}"; 

混淆和輸出是一樣Say hello。我應該何時使用{$hello}${hello}?以及爲什麼它不能用於單引號?

+2

有人走了,[寫了一本關於此的手冊](http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing.complex)。你讀過它嗎? – 2012-02-29 08:46:31

+0

謝謝@LinusKleen。現在我知道它是「捲曲」的 – 2012-02-29 08:51:33

回答

3
$animal = 'cat'; 
echo "I have 14 $animals"; 

這可能導致問題,從而你將 「逃離」 它

echo "I have 14 ${animal}s"; 

echo "I have 14 {$animal}s"; 

在單變量造成/表達均從未取代。

0

單引號字符串將永遠不會在PHP中擴展變量。請參閱:

http://php.net/manual/en/language.types.string.php

在PHP字符串格式的更多細節。總共有4個(包括在PHP 5.3中引入的nowdoc)。只有雙引號和heredoc字符串格式會導致變量被擴展。

0

http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing, 這是一個簡單的語法:

echo "Say ${hello}"; 

,這是一個捲曲的語法:

echo "Say {$hello}"; 

爲什麼他們兩個輸出一樣嗎? Becaus在PHP中可以在每個你想要的地方使用變量變量。例如:

$var = 'somevar'; 
$bar = 'var'; 
echo $$bar; // "somevar", simple variable variable 
echo ${$bar}; // "somevar", complex syntax 
echo ${bar}; // "var", because {bar} treated as a string constant: 
      // Notice: Use of undefined constant bar - assumed 'bar' 

因此,使用可變變量語法${hello}簡單地翻譯成$hello

相關問題