1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

未定義の場合実行しないforeachを、なるべくシンプルに書いてみる

Last updated at Posted at 2020-03-16

目的

  • 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行にまとめられるのか気になったので調べてみました。

「こういうのもあるよ!」とか「やめたほうがいいよ!」などありましたらコメントお願いします。🙇‍♂️(お手柔らかに)

1
0
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?