PHPでif文(HTML埋め込みでもスッキリな書き方も)

  • このエントリーをはてなブックマークに追加
  • Pocket

スポンサードリンク

PHPでのif文の基本的な書き方から、HTMLに埋め込んでもキレイにスッキリ書く方法などもご紹介します。

HTMLの中に通常のif文のコードを埋め込むとソースが汚くなり、閉じ忘れや閉じ過ぎなどのネスト地獄に陥り、思わぬミスを誘発します。

この書き方で、ネストエラーを防ぎましょう。

 

if文の基本

if文の使い方

福岡です。

if文の構文

if文は以下のような構文になります。

条件式

if文の条件式で、分岐の条件を決めます。

ifに続く()(カッコ)内に条件式を書きます。

if文のさまざまな使い方

elseでfalseの場合も指定する

if文ではtrueの場合とfalseの場合の両方でそれぞれプログラムすることもできます。

成人と未成年を表示

if文の最後の}(波カッコ)から続けてelseと書いて同様に指定するだけですね。

elseifでさらに条件分岐

if文ではtruefalseの2つの条件だけではなく、truefalseと別のtrueといった、3つも4つも分岐するより複雑な条件分岐もできます。

成人と未成年を表示し、65歳以上なら「シニア」と表示

elseifで2個め3個め…と複数の条件式を指定して、最後のelseでどれにも当てはまらないプログラムを書きます。

else ifとelseとifの間に半角スペースを開けて書いても問題ありません。

ただ、後述するendifを使った書き方だとエラーとなるため、elseifとくっつけて書きましょう。

 

複数の条件分岐なら switch文も便利ですよ。

参考:PHPのswitch文による条件分岐と使いどころ

if文を使ったサンプル集

20歳未満なら未成年と表示

70点以上なら合格

男性ならあいさつする

2ヶ月連続100万円なら連続達成と表示

if文と併せて使う演算子たち

if文は2つの値を比較して大きい、小さい、等しいなどと判定したり、複数の OR条件での分岐など、if文を補ってくれる演算子があります。

比較演算子(<=、==など)

条件式のカッコの中には比較する2つの値と、その間に比較演算子と呼ばれる記号が入っています。

比較演算子は左辺と右辺を比較して、等しいか、多いか少ないか、以上・以下などさまざまな比較をしてくれます。

 

比較演算子についてはこちら↓

PHPの比較演算子で条件分岐も自由自在

論理演算子(AND、ORなど)

条件式のカッコの中に複数の条件を指定することもできます。

AND(&&)やOR(||)など、複数の条件に合致した場合にのみ表示させるなど、複雑な条件分岐が可能になります。

 

論理演算子についてはこちら↓

PHPでANDやORなどの論理演算子を使いこなす(&&や||など)

「endif」でHTMLに埋め込んでもキレイなソースが書ける

上記に紹介した書き方が一般的ですが、HTMLに埋め込んで書くと、コードがゴチャゴチャとなり、思わぬ構文エラーを引き起こしがちです。

HTMLに通常のif文を書いた場合

なんかゴチャゴチャしてますね。

最後の波カッコとかよく忘れて、構文エラーになります。

以下のようにスッキリと書くこともできます。

HTMLにキレイなif文を書いた場合

{ }(波カッコ)を使わない代わりに、:(コロン)を付け、一番最後にendifを付けます。

endif以外は;(セミコロン)は不要です。

HTMLに埋め込むとソースが汚くなりがちですが、これでだいぶスッキリと書くことができますね。

この書き方でelseifを「else if」とスペースを入れて書いてしまうとエラーになります。

条件分岐を一行でスッキリ書く

if文を一行で記述

単純なif文であれば、1行で処理できます。

未成年です。

{ }(波カッコ)を省略し、改行せずに1行で記述するためスッキリしていますね。

elseがない単純なif文であればこの書き方もシンプルで好きですが、独特な記述法でもあるため、チームでコーディングする場合は一言断ってから使うとスムーズかもしれません。

たまに他所様のソースでこの記述法を見かけるため、知っておくと良いでしょう。

三項演算子

もっとスッキリ書きたいなら、一行で条件分岐が出来る「三項演算子」ですね。

その割にはイマイチ浸透していないようですが、たまに他所様のコードで見かけますので、知っておいて損はないでしょう。

 

三項演算子についてはこちら↓

PHPの三項演算子で簡単に条件分岐

 

他にもif文を使ったサンプルコードを載せています。↓

参考:PHPで日付が正しいかチェックする方法
参考:PHPで特定の文字列が含まれているかを判定する2つの方法

スポンサードリンク

  • このエントリーをはてなブックマークに追加
  • Pocket

コメント

  1. asdf より:

    しましまのコントラストがありすぎて読みにくい

    1. flatFlag より:

      貴重なご意見ありがとうございます。
      ソースコードの部分でしょうか?
      今はコンテンツの充実に力を注いでいますが、落ち着いたらさらに見やすいデザインも心がけていきますので、今後ともflatFlagをよろしくお願いします。

  2. xxx より:

    ソースコードが黒いシマシマで読みにくかったです。
    背景は黒か白一色にするのはいかがでしょうか?

    1. flatFlag より:

      貴重なご意見ありがとうございます。
      シマシマの表示は読みにくいとのことで、単色での表示も検討させていただきます。
      今後ともユーザー様にストレスなく閲覧頂けるよう努めていきますので、また何かご意見等ありましたらコメントください。

  3. ccc より:

    確かにコード部分のシマシマは見にくいですね…
    良記事なだけにそこが目立ってストレスです…

    指摘から5ヶ月以上変更が無いという事はシマシマ継続か…
    修正を怠っているのか…

    1. flatFlag より:

      貴重なご意見ありがとうございます。
      上記のとおり同様のご意見も頂戴しておりますので、保留にしていたこの件改善案含め検討させていただきます。
      ご指摘ありがとうございます。

xxx へ返信する コメントをキャンセル

*