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の本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

最新版Laravel11用のサポートガイドご用意しています。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

【おすすめレンタルサーバー】

「Webアプリを本番環境に反映させたい」

場合には、レンタルサーバーを使うのが手軽です。

わたしはエックスサーバーをメインに使ってます。
早くて安定していて、おすすめです♪



Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました