【问题标题】:Concatenation operator in PHP [closed]PHP中的连接运算符[关闭]
【发布时间】:2013-12-05 04:12:39
【问题描述】:

在我前段时间参加的一次会议上,一位演讲的 .NET 程序员提出了一个问题:

“为什么PHP中的连接运算符与其他语言不同?”

更确切地说,为什么它是一个点而不是一个加号?

当时,在场的人都不知道答案。今天,在玩 JavaScript 时,我想我找到了一个原因。如果这确实是它是一个点而不是一个加号的主要原因,我很好奇。

我将使用 JavaScript 作为示例:

var foo = 7;
var bar = 3;
console.log(foo+bar);

在这种情况下,两个变量的类型都是整数,因此加号的行为与数学中的行为相同,即计算总和。结果将是 10。

下一个场景:

var foo = 7;
var bar = "3";
console.log(foo+bar);

在这种情况下,“foo”是一个整数,“bar”是一个字符串。结果将是 73。

我猜想使用点而不是加号来消除关于这个特殊情况的一些歧义。

就在发布此问题之前,我注意到 SO 上的一个类似问题与我今天发现的答案相似。

这是问题的链接:Why is the php string concatenation operator a dot (.)?

除此之外还有什么原因吗?感谢您抽出宝贵时间,如果我需要在降级之前编辑我的问题,请告诉我。 :)

【问题讨论】:

  • 人们需要停止问“为什么?” PHP 的。 PHP 以 PHP 的方式为 PHP 做 PHP 的事情。
  • 哲学溢出就是这样>>>>
  • 实际上,使用相同的运算符进行连接和加法通常被认为是编程语言中的设计错误
  • PHP 和 Javascript 都非常清楚如何区分数字和字符串,它们只是选择让用户偷懒并尝试做出明智的假设。这是非常实用的,但需要一点纪律,真的...... PHP 允许您增加数组的事实让我更加困扰 :)
  • 在思考 PHP 为何如此设计时,我通常认为酒精起了主要作用。

标签: php concatenation


【解决方案1】:

PHP was originally developed in Perl,从中借用了很多语法。这包括使用. 作为字符串连接运算符,以及前缀$ 用于变量名。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-13
  • 2011-02-04
  • 1970-01-01
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
相关资源
最近更新 更多