no-image

対象が配列の時だけforeachするシンプルな方法

最近「どうせPHPなんてできる事に限界があるんだから,もうちょっとゆるいルールでコーディングしてもいんじゃね?」的に変なコードを書いています.(ただし仕事で書く時は自重している)

cakeで,DBからデータ一覧をとってきて,foreachで表示するなんて事よくありますよね.以下のようなコード.


$items = $this->Item->find('all');
foreach ($items as $item) {
  echo $item['Item']['itemName'];
}

でもこれ,find先のデータが空だと,$itemsが空になるので,foreachできずエラーになるんです.何もでないのは別にいいけどエラーがでるのは困ります.
というわけで,最近はこんな風にかいてます.


$items = $this->Item->find('all');
if (is_array($items)) foreach ($items as $item) {
  echo $item['Item']['itemName'];
}

「括弧は何があっても省略しないぞ!」という制限を外すと,それだけでかなりおもしろい書き方ができるようになってきます.PEARのコーディング規約に厳格に従っている人は,一旦外れてみると,いろいろみえてくるものがあるんではないでしょうか.