为什么 PHP 函数 in_array 和 strpos 中干草堆和针的顺序不一致?



这两个非常核心的PHP函数中参数haystackneedle的顺序不一致:

  • http://php.net/manual/en/function.in-array.php(针、大海捞针(
  • http://php.net/manual/en/function.strpos.php(干草堆、针(

为什么会这样呢?

PHP 中的针/大海捞针

它们实际上并不像许多人想象的那样不一致。您已经部分发现了一致性:

  • 所有字符串函数都是(干草堆、针(

  • 所有数组函数都是(针、大海捞针(

Rasmus Lerdorf(PHP的创建者(在2019年的一次演讲中陈述了这一点,大约25分钟:

PHP 25 年 - phpday 2019

https://youtu.be/iGOAQli7tGc?t=1485

PHP 中的不一致

在16:45,他有一张幻灯片,标题为"他在想什么?",他解决了"命名不一致"。(针/大海捞针问题只是其中之一(

https://youtu.be/iGOAQli7tGc?t=1005

在这次演讲中,他还解释说,他的PHP设计决策几乎都是基于PHP是"底层C库的包装器"的想法,并且保持参数与底层代码相同的顺序。

最新更新