2013-10-23 23 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;

相关问题