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の教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

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

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

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪



【法人向けオンラインセミナー実施中】
1日セミナーと、専用サイトを使った1ヵ月セミナーをご用意しています。
社内にLaravelエンジニアを増やしたい時にご活用ください。

詳細はこちら

Twitter始めました。
40代からプログラミング!

コメント

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