这两个非常核心的PHP函数中参数haystack
和needle
的顺序不一致:
- 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库的包装器"的想法,并且保持参数与底层代码相同的顺序。