为什么在 PHP 中使用句号 “.” 而不是加号 “+”来表示字符串串联?
2022-08-30 12:47:38
为什么PHP的设计者决定使用句号/句点/“.”作为字符串串联运算符,而不是更常见的加号“+”?
它有什么好处,或者有什么理由吗?还是他们只是喜欢?:o)
为什么PHP的设计者决定使用句号/句点/“.”作为字符串串联运算符,而不是更常见的加号“+”?
它有什么好处,或者有什么理由吗?还是他们只是喜欢?:o)
PHP的语法受Perl的影响,是Perl中的字符串串联运算符。.
在弱类型语言中,具有不同的字符串串联和数字加法运算符有其优点:使用哪一个运算符将影响语言强制变量使用哪种类型。
碰巧的是,Perl 6 将使用波浪号而不是点进行字符串连接,因为将用于对象成员访问。因此,Perl的设计师现在似乎认为这是一个糟糕的选择。~
.
.
也许,在Perl和PHP早期的非面向对象时代,它似乎和任何选择一样好。也许这两种语言的设计者从未设想过它们会成为强大的OO语言。
至于PHP是否会有一天放弃其成员访问语法,谁知道呢?->
.
最明显的原因可能是PHP从Perl继承了很多语法 - Perl使用点(.
)进行字符串连接。
但是,我们可以更深入地研究它,并找出为什么在Perl中实现它 - 运算符最常用于数学方程 - 它仅用于变量类型可以定义运算符工作方式的语言中的串联(简单的解释,示例是C#)+
var intAddition = 1 + 2;
Console.WriteLine(intAddition); // Prints 3
var stringConcat = "1" + "2";
Console.WriteLine(stringConcat); // Prints "12"
^ 如您所见,该运算符在 C# 中既用于串联又用于加法。+
也许推理水平较低,并且是由于逻辑门的布尔代数 - 逻辑门中的意思是,而被用作运算符 - 这在字符串串联方面是有意义的。+
OR
.
AND
有两个单独的运算符是有意义的,一个用于串联,一个用于添加 - 不幸的是,由于其他语言,这两个运算符可能会混淆。