为什么数组函数中的参数与字符串函数中的参数顺序不同?

时间:2012-12-23 10:54:52

标签: php

我一直想知道为什么在PHP数组函数中我们在$needle之前有$haystack,反之亦然。 E.g:

mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

这是另一个PHP悲伤还是有某种逻辑解释? 事情是我经常不记得哪一个是以什么顺序 - 也许超出此范围的逻辑将有所帮助。

2 个答案:

答案 0 :(得分:6)

在语言的早期版本中引入了一个php悲伤,并且从未纠正以避免这样的BC breack。 这是人们在批评php时调用的第一个原因

答案 1 :(得分:2)

因为PHP是一个hotch-potch而且库不一致。

没有其他原因。