为什么PHP函数in_array和strpos中haystack和needle的顺序不一致?

Why is the order of haystack and needle inconsistent in PHP functions in_array and strpos?

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

为什么会这样?

Needle/Haystack 在 PHP

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

  • 所有字符串函数都是(haystack, needle)

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

Rasmus Lerdorf(PHP 的创建者)在 2019 年大约 25 分钟的演讲中指出了这一点:

25 年 PHP - phpday 2019

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

PHP

中的不一致

在 16:45,他有一张幻灯片,标题为“他在想什么?”他解决了“命名不一致”的问题。 (needle/haystack 问题只是其中之一)

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

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