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

时间:2018-10-25 09:05:27

标签: php api-design language-design

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

为什么会这样?

1 个答案:

答案 0 :(得分:1)

PHP中的针/干草堆

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

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

  • 所有数组函数都是(针,干草堆)

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

25年PHP-phpday 2019

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

PHP中的不一致

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

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

在本次演讲中,他还解释了他对PHP的设计决策几乎全部基于PHP是“底层C库的包装器”的思想,并且使参数与底层代码的顺序保持一致。