学んだこと
$has_という変数名をつけず、データの取得と、countなどの判定とで処理を二段階に分けるのも手
has_xxxのような変数を作っていた
$has_user_item = !($items->where('item_type', 'user')->empty()); if (!$has_user_item) {
このように、if文内で変数一つで扱えるよう、判定用の変数を用意していた。
判定用の数値は判定の時に算出する
$user_items = $items->where('item_type', 'user'); // 判定用の数値に変える if (!($user_item->empty())) { }
このように書くことも出来る。ただ、一長一短ある。
どちらがより再利用されるプログラムか。
注)これに正解はなく、ケースバイケースです。
$has_user_item = !($items->where('item_type', 'user')->empty()); if (!$has_user_item) { xxx_func($has_user_item); }
このように、判定結果を引数等で他の場面で使いたい場合もあるかもしれない。先程のように分割すると
$user_items = $items->where('item_type', 'user'); // 判定用の数値に変える if (!($user_item->empty())) { xxx_func($user_item->empty()); }
こんなコードになったりするので、一気にまた見にくくなり、メンテナンスも面倒。なのでケースバイケース。
おまけ
ちなみに、メモリにどれくらい使うか・・・みたいな話があるが、それは考えるべきプログラムなのか?私達はそこまで切り詰めたサーバーなのか?って考えると、
一旦考えなくても良い現場が多いだろう。