这可能是一个愚蠢的问题,但它让我感到震惊,我在这里问。
<?php
$x="Hi";
$y=" There";
$z = $x.$y;
$a = "$x$y";
echo "$z"."<br />"."$a";
?>
$z
使用php提供的传统连接运算符并连接,相反$ a不会,
我的问题:
不使用连接运算符,是否会影响性能?
如果不是为什么没有连接运算符。
为什么有人在完成工作时有两种实施方式?
答案 0 :(得分:3)
只是轻微一点,因为PHP必须解析整个字符串以寻找变量,而在连接时,它只是将两个变量放在一起。因此,性能微不足道,但对大多数事情来说并不明显。
使用连接运算符连接像$_SERVER['DOCUMENT_ROOT']
这样的变量要容易得多(使用引号,你必须用括号括起变量或删除数组索引中的单引号;加上它只是使得字符串看起来都很丑陋)。此外,串联运算符可以更灵活地进行格式化。例如,您可以将长字符串文字拆分为多行,然后连接它的不同部分:
$blah = "This is a really really long string. I don't even know how " .
"long it is, but it's really long. Like, longer than an eel " .
"or even a boa constrictor. Wow.";
您还可以使用连接运算符直接包含字符串文字中函数的返回值(您不能在双引号字符串中包含函数调用),如下所示:
$blah = "This has a " . fn_call() . " result, which can't go in the quotes.";
我不确定我完全理解你在这里问的是什么,但是我可以说PHP从Perl那里借了很多东西,Perl的一个咒语就是“有不止一种方法可以做到这一点。“
答案 1 :(得分:2)
在某些情况下,你的写作较少:
$someLongVarName ="Hi";
$someLongVarName .=" there";
VS
$someLongVarName ="Hi";
$someLongVarName = "$someLongVarName there";
答案 2 :(得分:2)
一个。是。 PHP必须解析变量的字符串。
湾由于以下行:echo 'Your Ip address is' . get_ip() . '.';
原因A和B.
答案 3 :(得分:0)
解决你的上一个问题:
每种语言都有多种做同样的事情。灵活性在每种语言中都很重要,因为任何给定的方法在不同情况下可能会更好。关于这一点,您唯一需要担心的是在您自己的代码中保持一致。