Advanced Custom Fieldsを使って繰り返しフィールドの値を取得しようとしてたら、Warningが出ました。
出ないようにしたいと思います。
Invalid argument supplied for foreach()が出る理由
//▼以下の$rowを処理しようとしたら、Warningが出ました
foreach($table as $row){
$rowを処理
}
foreachループに無効な引数が渡された場合にInvalid argument supplied for foreach() Warningが出ます。配列ではない値やnullなどの反復処理できないデータ型がforeachループに渡されたときに発生します。
foreachループの前に使用する配列を確認
//▼配列データが入っているか確認の場合
if(is_array($table)){
foreach($table as $row){
$rowを処理
}
}
foreach()は配列データでないといけないんでした。
今回は配列データが入っているか確認して、そもそも配列データを渡すようにする方で対処しました。他にキャストする方法もあります。
配列データにキャストする方法
//▼強制的に配列データにする場合
foreach((array)$table as $row){
$rowを処理
}
コメント