PHP有一个有趣的功能,您可以使用count()
或 sizeof()
来查看数组的长度。同样,您可以使用join
或implode
将数组转换为字符串。它使您可以灵活地使用strchr
或strstr
,chop
或rtrim
,exit
或die
,is_integer
或is_int
等执行完全相同的操作。
在其他常见的编程语言(如Java或C或Python)中是否存在此别名的示例?这个功能的目的究竟是什么?
我能想到的最接近的事情是Python如何让你使用import somemodule
vs from somemodule import a, b, c...
,甚至可以from math import sqrt as mysquarerootfunction
。
然而,这在Python中具有明显的优势,因为您可以将使用实平方根的程序更改为复杂的sqrt(),例如将from math import *
更改为from cmath import *
。
答案 0 :(得分:2)
PHP Manual Appendix中有关于函数别名的解释以及包含别名的所有函数的列表:
PHP中有很多功能你可以用更多来调用 不止一个名字。在某些情况下,其中没有首选名称 多个,is_int()和is_integer()同样好。 但是,由于API,有些函数会更改名称 清理或其他原因,旧名称只保留 用于向后兼容的别名。使用它通常是个坏主意 这些别名,因为它们可能会被淘汰或过时 重命名,这将导致不可移植的脚本。提供此列表 帮助那些想要将旧脚本升级为更新语法的人。
答案 1 :(得分:1)
历史悠久的大多数语言和API都至少有一些别名,从两种方式来说,使用不同的名称完全相同。然而,对于完全相同的操作,具有两个不同的名称并不常见。我无法在我经常使用的语言中找到任何示例(PHP不是其中之一)。
常见的是
1.较旧的方式被更新的方式取代,并且两者都可用。 C函数printf()
和C ++流<<
就是这样的。事实上,大多数C标准库已被C ++标准库所取代,这意味着有很多机会以两种不同的方式做同样的事情。 Java和.NET也充满了例子。
一个简单的函数有一个更复杂的表亲,可以做所有简单的事情。 C函数atod()和strtof()就是这样的。 Windows API中有许多函数,其名称类似于SomeFunction()和SomeFunctionEx()。
要回答您的其他问题,唯一的目的是向后兼容。在他们正确的思想中,没有人为单个函数设计一个具有两个名称的语言。这些事情恰好随着语言的发展而发生,PHP现在已经很老了。