2013-10-23 26 views
0
$lions = "lions"; 
$tigers = "tigers"; 
$bears = "bears"; 

echo "$lions and $tigers and $bears, oh my!" 

回聲同樣的事情,這樣的:爲什麼字符串連接是必需的?

echo $lions . " and " . $tigers . " and " . $bears . ", oh my!" 

那麼,爲什麼是必要的concantenation?有什麼意義?

+0

由於插值只允許使用普通變量或基本varexpressions,但連接爲「'有」之類的表達式打開方式「(1 + 2)。$ li ons。 「或$熊」'。 – mario

+0

在'echo'語句中,由於雙引號,變量將被內插到值中。但是在一個例子中,你可能正在調用一個函數,它會返回一個你想追加到另一個字符串的字符串,所以需要連接運算符。 – Crackertastic

+0

我喜歡在我的工具箱中有很多工具,但如果你只是想要一把錘子,那很好。 – paddy

回答

3

它可以讓你做到這一點:

echo lions() . " and " . tigers(); 

函數調用,一般表達式,使用字符串插值是不可能的。

當變量名稱沒有清楚地描述時,還需要特別注意,例如,

echo "{$lions}_{$tigers}"; 

下劃線否則將被視爲$lions變量名稱的一部分。

另一種方式來完成類似的事情是利用printf()和朋友:

printf('<span>%s</span> and %s', htmlspecialchars($lions), tigers()); 

這一切都歸結到能夠同時做某些事情在某些情況下;-)

+0

我明白了。但在我上面的情況中,我的代碼是否正確? – Christoph

+0

@Christoph如果你的代碼錯了,我會告訴你。 –

+0

@Jack OP不是在尋找一個錯誤,而是每個人在個案中做了什麼以及他們真正有什麼不同 –

-1

他們允許人們使用'而不是'echo 'Hello '.$world;

相關問題