PHPの制御文の書き方には2通りあります。

PHPの制御文と言えば、『if文』や『while文』や『foreach文』などなどがあります。
WordPressのテンプレートとか見ていたら書き方が2通りあるって気づきました?

if文を例にとると以下の2通りの書き方あります。パターン1とパターン2です。

[php] <!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPってそんなに難しくないかも?</title>
</head>
<body>

●パターン1++++++++++++++++++++++++++++++++++++++++++++++++++
<?php $age = 19; ?>

<?php if( $age < 20 ) : ?>

<p>未成年</p>

<?php else: ?>

<p>成年</p>

<?php endif; ?>

●パターン2++++++++++++++++++++++++++++++++++++++++++++++++++
<?php
$age = 19;
if($age <20){

echo "<p>未成年</p>";

}else{

echo "<p>成年</p>";

}
?>

</body>
</html>
[/php]

これの出力結果は両方一緒で、書き方としては両方問題なく正解です。2通りの書き方があるだけです。

スナップショット 12:11:30 10:22

ざっくり違いを言うと『:』を使うか『{}』を使うかの違いです。
私はWordPressのテンプレートファイルに制御文を書く場合はパターン1を使います。
理由としては

  • 1行ごとにPHPブロックが切れている方が読みやすい。
  • 『}』閉じカッコで書かれているよりも、『endif;』で明記してある方が『if文』の始まりとの整合性が取りやすい。

まぁ、テンプレートファイルにはHTMLタグがベースに書かれているので、可読性から上記2点の理由でパターン1が良いと思っています。

逆にfunctions.phpにPHPコードを書く場合はパターン2を使ってます。
functiions.phpはHTMLタグがメインではなく、PHPコードがメインで書くところだからです。
PHPコードがメインになるとインデントなどを綺麗にしていれば、パターン2の方が綺麗にコードが見えます。

PHPの制御文の書き方には2通りあります。
Tagged on:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です