为什么PHP函数in_array和strpos中haystack和needle的顺序不一致?
Why is the order of haystack and needle inconsistent in PHP functions in_array and strpos?
这2个非常核心的PHP函数中参数haystack
和needle
的顺序不一致:
- http://php.net/manual/en/function.in-array.php(针,大海捞针)
- http://php.net/manual/en/function.strpos.php(大海捞针,针)
为什么会这样?
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 库的包装器”,并将参数保存在与底层代码的顺序相同。
这2个非常核心的PHP函数中参数haystack
和needle
的顺序不一致:
- http://php.net/manual/en/function.in-array.php(针,大海捞针)
- http://php.net/manual/en/function.strpos.php(大海捞针,针)
为什么会这样?
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 库的包装器”,并将参数保存在与底层代码的顺序相同。