PHP ドキュメントには、array_keys の 2 番目の引数のデフォルト値は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
質問
値がnullのキーを見つけようとしているに違いないと思います。
false または空の文字列を渡すと、まったく同じ動作が発生します (明らかに)。
それで、デフォルト値は何ですか?
答え
xdazz 答えは正しいです。この関数の C コードを調べたとき、私が最初に考えたのは、これは C レベルでの不適切な実装であるということでした (コードを削除することで簡単に修正できました)。
しかし、配列内のNULL値をテストできるようにするために多くの問題が発生したため、これは実際には意図された動作であることに気付きました。