【PHP】×PHPの中にHTMLを書く ◯HTMLにPHPを埋め込む

最初のうちは『とにかくPHPで書かなきゃ』と安易にやってましたが、すごい長くなって可読性が下がるのでやめましょう。


HTMLの中にPHPが正解

PHPはHTMLの中に埋め込むことができるスクリプト言語です。

PHP (PHP: Hypertext Preprocessor を再帰的に略したものです) は、広く使われているオープンソースの汎用スクリプト言語です。 PHP は、特に Web 開発に適しており、HTML に埋め込むことができます。

参照:PHP Manual_PHP とはなんでしょう?

あくまでHTMLの中にPHPでプログラムを埋め込んでいくのが綺麗なコードで、PHPでHTMLタグを不用意にタグを書いていくのは無駄な記述です。


PHPの中にHTMLはよくない

PHPの記述はプログラム内容についてをメインに書くのがキレイであり、HTMLのタグなどを不用意にPHPで書くのは望ましくありません。

<ul>
  <?php
    for($i = 1 ; $i <=5 ; $++){
      echo "<li>$i</li>";
    }
  ?>
</ul>

PHPの内容記述では無駄なタグを書いたりしてプログラム部分が長くならないようにするのが理想です。


HTMLの中にPHPを埋め込む

先ほどの例をキレイに書くなら以下のようにしてみます。

  <ul>
    <?php for($i =1 ;$i <=5 ; $i++):?>
      <li><?php echo $i; ?></li>";
    <?php endfor; ?>
  </ul>

知っとくと便利なこと

基本的にはコメントアウトなどを用いつつ可読性が高いことが求められます。


『:』と『end〜;』をちゃんと使う

先ほどの例でも使いましたが、『end〜』の形は慣れておきましょう。

使い慣れとくと便利な形

  • for/endfor
  • foreach/endforeach
  • while/endwhile
  • if/endif

ifではelseやelse ifで複数条件を書くケースがありますがその場合は

<?php if($x === $alpha): ?>
  <p>1つ目の処理</p>
<?php else if($x === $beta): ?>
  <p>2つ目の処理</p>
<?php else: ?>
  <p>その他の処理</p>
<?php endif; ?>

elseの部分も開始と同様にコロンで繋いで書くことができます。


三項演算子は使うべき?

三項演算子って何って話なのですが、条件演算子の一種です。

条件演算子(英: conditional operator)は、プログラミング言語の演算子で、条件文と同様な意味があるが、文ではなく値を持つ式になる。評価されると、条件式の値により異なる式が評価され、異なる値になる。

参照:条件演算子 -Wikipedia-

すごく簡単に言えばifの別の書き方です。(ifは文に対し、三項演算子は式ですが説明を省きます)

[三項演算子の構造]

(条件式) ? trueの場合 : falseの場合;

実際の使い方は以下の例でみてみます。

<?php
  $num1 = 100;
  $num2 = 5;
  $ans = ($num1 % $num2 === 0) ? "{$num1}は{$num2}で割り切れる":"{$num1}は{$num2}で割り切れない";
  echo $ans;
?>

[出力結果]

100は5で割り切れる

ifで書くと以下のようになります

<?php
  $num1 = 100;
  $num2 = 5;
  if($num1 % $num2 ===0){
    echo "{$num1}は{$num2}で割り切れる";
  }else {
    echo "{$num1}は{$num2}で割り切れない";
  }
?>

[出力結果]

100は5で割り切れる

三項演算子は慣れると使いやすく書きやすいですが、処理が複雑になるならifのように構造化した方がわかりやすくなるのでうまく使い分けましょう。


まとめ

最後は少し脱線しましたが、共通して言えるのは可読性が高いコードが開発には必要です。のちの自分や他の人が「何をしてる処理?」とならないようにしておくのが大事です。