2016-08-18 66 views
0

我不得不接受一個關於php的測試來評估我在現場的知識。作爲這種語言的初學者,有些問題很難回答。

其中之一是告訴,echo '{$x}';的輸出是什麼?由於我從來沒有在功能調用之外看到過這種括號,所以我不知道。

你能說出來嗎? echo '{$x}';,變量$x沒有受到任何影響:在這種情況類似 -

+5

由於您使用的是單引號,因此它會回顯'{$ x}'。 – Daan

+4

[檢查出來](http://stackoverflow.com/questions/2596837/curly-braces-in-string-in-php) –

+1

還檢查了單引號字符串和雙引號字符串之間的區別[PHP的Dcs]( http://www.php.net/manual/en/language.types.string.php) –

回答

2

看起來這是一個有趣的問題,先來看看,如果你知道一個PHP字符串,使用什麼花括號的,但也來,看看你知道什麼是雙和單引號的區別在PHP中的字符串,其中單引號不被評估和雙引號,例如:

$name = "bob"; 
echo "hello $name"; // hello bob 
echo 'hello $name'; // hello $name 

我猜他們是假設你會看到大括號,這是用來在字符串中的變量隔離,並給予回答時不用看報價:

$place = 3; 
echo "you are {$place}rd in the line"; // you are 3rd in the line 
echo "you are $placerd in the line"; // error, $placerd is not defined 
echo 'you are {$place}rd in the line'; // you are {$place}rd in the line 
+0

所以''你是{$ place} rd在行中''等於''你是'。$ place。「rd在行中''? –

+0

是的輸出將完全相同。花括號僅用於在雙引號字符串內分隔(隔離)PHP變量,因此在上面的示例中將變量('$ place')與字符串的「rd」部分分開 –

1

當您使用單引號()。這意味着單引號內的所有內容都將被解釋爲字符串並且echo ed back verbatim。 但是,如果您使用雙引號而不是單引號,例如:echo "{$x}";,則寧可導致對$x的值的評估,結果將爲echo ed。請參閱Documentation瞭解更多信息。