PHP字符串操作

时间:2011-03-10 16:21:12

标签: php string

  

可能重复:
  Why is the php string concatenation operator a dot (.)?

我一直想知道 -

为什么PHP使用。运算符来连接字符串而不是+号?

这是一种提高脚本评估性能的方法吗?

由于

3 个答案:

答案 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它知道该怎么做。

另见

why-is-the-php-string-concatenation-operator-a-dot

答案 2 :(得分:0)

因为Perl used the . for string concatenation和PHP受Perl语法的影响很大。