目的
-
PHP Warning: Invalid argument supplied for foreach()
を起こさない - 予め空配列を定義するのもなんか嫌
- でも定義されているときはforeachを実行してほしい
対策
// $array をstring型の配列と仮定します
foreach($array as $key => $value){
echo $value;
}
// => PHP Warning: Invalid argument supplied for foreach()
// 対策
if(isset($array)) foreach($array as $key => $value){
echo $value;
}
// => エラーも起きず、何も出力されない
$array = ['a', 'b', 'c'];
// $array をstring型の配列と仮定します
if(isset($array)) foreach($array as $key => $value){
echo $value;
}
// => abc
課題点
- そもそも未定義かもしれない変数を使う構造の是非
-
isset()
関数の仕様上、NULLと未定義を区別できない(らしい)
アルバイト中、if文とforeach文を1行にまとめられるのか気になったので調べてみました。
「こういうのもあるよ!」とか「やめたほうがいいよ!」などありましたらコメントお願いします。🙇♂️(お手柔らかに)