Laravel
$loopという変数について
イブリン
更新日:2026/03/03
AIってすごいところまで来ましたね。プライベートでは画像生成とかちょっとしたプログラム作りでかなり世話になっていますが、仕事中もレビューや複雑なロジックのリファクタリングでAIを使用したりしています。
その中で、意外にも学びがありました。
「お、ハルシネーションか?」と思った瞬間
とあるコードのリファクタリングをさせてるところで、AIからこんなコード提案されました。
|
1 2 3 4 5 6 7 |
@foreach ($array as $item) @if ($loop->first) <div> first loop </div> @else <div> not first loop </div> @endif @endforeach |
$loopってなんやねん。
どこにも定義していない変数を使っているし、いきなり「first」とか言い出してる。 「出たよAIのハルシネーション!」と、心の中でニヤリとしてしまった私。
AIの誤りを突き止めたつもりで呑気にぐぐってみると……。
……実在してるぞ。
Laravelの魔法:$loop 変数とは
調べてみると、これはLaravelのBladeテンプレートで利用できる変数でした。
わざわざ $key を回したり、array_key_last で最後を判定したりしなくても、@foreach の中ならいつでも $loop が使える。これまでの「泥臭い条件分岐」が嘘のようにスッキリ書ける魔法の変数だったのです。
特に便利だなと思ったのが、以下のプロパティたちです。
| プロパティ | 説明 |
$loop->first |
ループの最初の回か? |
$loop->last |
ループの最後の回か? |
$loop->iteration |
現在何回目か(1からカウント) |
$loop->index |
現在何回目か(0からカウント) |
$loop->count |
全体の要素数 |
$loop->even / $loop->odd |
偶数回目か、奇数回目か |
これまでは if ($i === 0) や if ($i === count($array) - 1) と書いていた処理が、これだけで完結します。特にテーブルの行の色分け(奇数・偶数)や、区切り線を入れる時なんかはめちゃくちゃ捗りますね。
まとめ:AIを疑いながら使うのも、また一興
正直、最初はAIを疑う気持ちから始まったことですが、結果として「知らなかった便利な記法」に辿り着くことができました。
AIの提案をただ盲信するのではなく、「本当か?」と検証するプロセスの中にこそ、エンジニアとしての学びがあるのかもしれません。
皆さんも、AIが提案する「謎のコード」を見つけたら、すぐに否定せず一度調べてみると、意外な発見があるかもしれませんね!