Foreach での Null 変数の処理
配列または null 変数である可能性のあるデータを処理する場合、そのようなデータに対して foreach ループを実行します。データにより、「foreach() に指定された引数が無効です」という警告が表示される場合があります。この警告は、提供されたデータが配列ではない場合に発生します。この警告を回避するには、提供されたデータが配列であることを確認するソリューションが必要です。
この問題に対処するには、いくつかのアプローチがあります。
Initializing to Array: $values 変数を空の配列として宣言します。以下に示します:
$values = array();
このメソッドは、 get_values() 関数は null 値を返しますが、foreach ループは引き続き空の配列で動作し、警告を回避します。
条件付き実行: foreach ループを次の範囲内で囲みます。図に示すように、指定された $value が配列またはオブジェクトであるかどうかを確認する if ステートメント
if (is_array($values) || is_object($values)) { foreach ($values as $value) { ... } }
このアプローチにより、データが配列またはオブジェクトの場合にのみ foreach ループが実行され、データが null の場合の警告が回避されます。
その他解決策:
警告を黙らせる @ エラー抑制演算子を利用します:
foreach (@$values as $value) { ... }
このメソッドは、有効な可能性のある警告を含むすべての警告を抑制することに注意してください。 、そうではないかもしれません
set_error_handler("my_error_handler");
my_error_handler 関数で、 「foreach() に指定された引数が無効です」という警告とそれを処理する
最も適切なアプローチは、開発者の特定の要件と好みによって異なります。提供された回答で提案されている条件付き実行方法は、効率とシンプルさのバランスが取れており、ほとんどの場合に実行可能なソリューションになります。
以上がPHP の Foreach ループで null の可能性がある変数を安全に反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。