PHP 文档指出 array_keys 第二个参数的默认值为NULL。
但是,当显式传递NULL时,array_keys 似乎无法正常工作。
例子:
代码
$a = array(10=>'a', 11=>'b', 12=>'b', 13=>'c', 14=>'c', 15=>'b');
$keys = array_keys($a);
var_dump($keys); //Output 0
$keys = array_keys($a, null);
var_dump($keys); //Output 1
输出
array
0 => int 10
1 => int 11
2 => int 12
3 => int 13
4 => int 14
5 => int 15
array
empty
问题
我认为它必须试图找到值为空的键。
传递 false 或空字符串会产生完全相同的行为(显然)。
那么,默认值是多少?
回答
xdazz 的答案是正确的。在检查这个函数的 C 代码时,我的第一个想法是这是一个糟糕的 C 级别实现(通过删除代码很容易修复)
But then I realized this is actually the intended behavior since they went to a lot of trouble to enable you to test for NULL values inside the array.