可能重复:
Why is the php string concatenation operator a dot (.)?
我一直想知道 -
为什么PHP使用。运算符来连接字符串而不是+号?
这是一种提高脚本评估性能的方法吗?
由于
答案 0 :(得分:2)
因为否则,在这种情况下会发生什么?
$str = "4";
$num = 2;
$result = $str + $num;
如果您希望结果为“42”怎么办?
<强>澄清强>
上面回答的问题是“为什么除了运营商.
之外还有运营商+
?”。如果预期的问题是“为什么运算符+
不执行字符串连接?” (理解为需要另一个操作员来接管当前行为+
),然后我会很乐意删除我的答案,而不是更相关的答案。
答案 1 :(得分:1)
在决定它(PHP)会进行大量自动装箱之后,几乎没有其他选择使用2个不同的运算符来“添加”和“结束”。
“+”用于添加是显而易见的,@ Gumbo解释了为什么“。”被选中了。
var_dump("12ab" + "34cd"); // 46
var_dump("12ab" . "34cd"); // "12ab34cd"
所以你需要告诉你想要它做的语言,因为它可以做到这两点:)
其他语言没有这个问题,因为它们不允许从字符串到整数的隐式转换。
所以,如果你写"4" + 2
语言会告诉你它不能那样,你需要写:intval("4") + 2
它知道该怎么做。
答案 2 :(得分:0)
因为Perl used the .
for string concatenation和PHP受Perl语法的影响很大。