Laravel ifの中の=イコール数は2つと3つで何が違う?どちらが正解?

プログラミング・PHP学習
スポンサーリンク

if条件式の中の=の数は、2つの場合と3つの場合があります。

プログラミングを学び始めたころは、

「イコールが1つと2つと3つで、何が違うの?」

って悩んだりしませんか?

結論から言うと、ifのあとは、イコール2こが良いことがほとんど!

イコール1こは間違い。イコール3こにすると、データの型まで一致する必要がでてきます。

Laravelでの例を使って、イコールの数による違いを解説していきます。

スポンサーリンク

ifの中の=イコールの数は2つと3つで何が違って、どっちが正解?

たとえば、次のような構造のデータベーステーブルがあるとします。

数の部分は、Int型、つまり整数が入るよう設定してあります。

このデータベースに、次の2つのデータが入ってるとします。

「みたらし」団子の数は「1個」です。

このデータを使って、ビューファイルに「みたらし団子の数が1個なら表示される」という条件式を書いてみます。

ifの中のイコールが1このとき

まずはイコールが一つ入れて、こんなふうに式を作ってみます。

すると、こんな結果になります。

イコールが1個のときは「代入」の意味となり、ifが機能しないのです。

単純に、団子の数だけ「みたらしは、1こあります」の文章が繰り返されます。

ifの中のイコールが2このとき

次にイコールがふたつのとき。こんなふうに式を作ってみます。

すると、ちゃんと望んだ結果になります。

ここで、条件式の中の1をカッコで囲み、’1′ とします。

これによって、数字ではなく文字列として処理してみます。

データベースの値と一致していると判断し、文章が表示されました。

イコールが2この場合は、データベースの中のデータ型と違うデータ型を使っても、値が同じであれば「同じ」と判断してくれます。

ifの中のイコールが3このとき

最後に、イコールの数を3こにしてみます。

すると、ちゃんと望んだ結果になりました。

次に条件式の中の1をカッコで囲んで文字列として扱ってみます。

すると、結果が表示されませんでした。

×表示されず

イコールの数を3こにすると、データの型まで同じにしないと、【同じ】と判断してくれないのです。

さいどに

データの型まで厳密に一致させたい場合には、ifの中のイコールは3こにしましょう。

そうでなければ、2こでOK

うっかり1こにしないように注意してくださいね^^

おまけ

なお、わたしが実際に経験したことですが、データ型まで同じなのに、なぜかイコール3個にすると、本番環境でエラーになるケースがありました。

レアケースかもしれませんが…

もしイコール3個にしたときに原因不明のエラーが起こったら、イコールの数をひとつ減らしてみてください。

プログラミング・PHP学習

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中!
会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

【個別サポート実施中】

「本ブログに記載の方法を試してみたけれど、うまくいかない」「コードを見てほしい」という方のために、有償でメールサポートいたします。以下のボタンをクリックして相談フォームにアクセスして下さい。

詳しく見る

Twitter始めました。
スポンサーリンク
40代からプログラミング!

コメント

タイトルとURLをコピーしました