che*_*vim 2 php api-design language-design
haystack这两个非常核心的 PHP 函数中的参数顺序needle并不一致:
为什么会这样呢?
它们实际上并不像许多人想象的那样不一致。您已经部分发现了一致性:
所有字符串函数都是(haystack、needle)
所有数组函数都是(needle、haystack)
Rasmus Lerdorf(PHP 的创建者)在 2019 年的一次约 25 分钟的演讲中指出了这一点:
PHP 25 年 - phpday 2019
https://youtu.be/iGOAQli7tGc?t=1485
16:45,他制作了一张题为“他在想什么?”的幻灯片。他还谈到了“命名不一致”的问题。(针/干草堆问题只是其中之一)
https://youtu.be/iGOAQli7tGc?t=1005
在这次演讲中,他还解释说,他对 PHP 的设计决策几乎全部基于 PHP 是“底层 C 库的包装器”的想法,并且保持参数与底层代码的顺序相同。