私が逃した通知、警告、エラーを見つけるためにPHPのerror_logsをデバッグしています。今私は配列の1要素を取得するためにPHP array_rand()
関数を使用しています。通常の状況ではこれは問題なく動作しますが、私のPHPエラーログには、array_rand()
を使ってコードに関するいくつかの警告があります。PHP array_rand()throws予期しない警告
PHP Warning: array_rand(): Second argument has to be between 1 and the number of elements in the array in ...
私はこのようにarray_rand()を使用しています:
$arr =
[
3 => [
999 => "10-G2",
1366 => "11-B2",
1481 => "14-C3",
]
];
$randomLoc = array_rand($arr[3], 1);
これは私に999
、1366
または1481
を返します。この配列が空の場合ISSETない
Warning: array_rand(): Array is empty in
$arr[3]
場合、$arr[3]
がemtpyある
場合、それは警告
Notice: Undefined offset: 3 in
前に、未定義のオフセットの通知がスローされます、空の警告がスローされますだから、どのように入手することが可能です2番目の引数は1と...未定義のオフセット通知なしで警告する必要がありますか?
ローカル私は空の警告を投げ、PHP 7.1を使用しています。 PHP 7.0は本当に投げているし、第二引数は1 ..警告の間にある必要があります。そして、私のfuckupがあります。エラーログはPHP 7.0(プロダクション)からのもので、私の開発環境はすでにPHP 7.1です。 – Timo002
興味深い。私はPHPマニュアルのarray_rand関数の変更ログをチェックしましたが、警告メッセージでこの変更については言及していませんでした。実際の警告メッセージについては言及していません。 PHP 7.1での変更については言及していますが、これとは関係ありません。この「機能」がドキュメント化されていないのは変です。 –