記事一覧

制御構造:if

 posted by suzu
PHPの基礎知識

WordPressのプログラム開発言語はPHPです。
特定の条件に当てはまる場合だけ処理を実行したい場合、
if構文を利用して制御を行います。
(同様の制御構造やif構文を持っているのはPHPに限ったことではなく、
プログラム言語全般に言えることではありますが・・・)

以下に(一般的な)具体例を挙げます。

<?php
if ($a > $b) {
    echo "aはbより大きい";
}
?>

条件式[$a > $b]が成立する場合だけ if (条件式) {・・・} に囲まれたブロックの
処理が実行されます。
 

<?php
if ($a > $b) {
    echo "aはbより大きい";
} else {
    echo "aはbより大きくない";
}
?>

条件式[$a > $b]が成立する場合は if (条件式) {・・・} に囲まれたブロックの
処理が実行され、それ以外の場合は else {・・・} に囲まれたブロックの処理が
実行されます。
 

<?php
if ($a > $b) {
    echo "aはbより大きい";
} elseif ($a == $b) {
    echo "aはbと等しい";
} else {
    echo "aはbより小さい";
}
?>

条件式[$a > $b]が成立する場合は if (条件式) {・・・} に囲まれたブロックの
処理が実行され、次の条件式[$a == $b]が成立する場合は elseif ($a == $b) {・・・} に
囲まれたブロックの処理が、それ以外の場合は else {・・・} に囲まれたブロックの
処理が実行されます。
 

世に公開されているWordPressテーマと見比べて「?」と思った方も
いらっしゃるかもしれません。
上記で「(一般的な)具体例」としたのは意味があります。
if構文自体にも複数の書き方があり、<?php ~ ?>デミリタとの
切り替え位置も相まって、ほとんどのWordPressテーマでは、複数の書き方が
混在しています。
以下に代表的なパターン例を挙げます。

<?php
if (条件式) {
    条件が満たされている(TRUEの)場合のHTMLコードを出力するPHP処理
} else {
    条件が満たされていない(FALSEの)場合のHTMLコードを出力するPHP処理
}
?>
<?php if (条件式) { ?>
    条件が満たされている(TRUEの)場合のHTMLコード
<?php } else { ?>
    条件が満たされていない(FALSEの)場合のHTMLコード
<?php } ?>
<?php
if (条件式) :
    条件が満たされている(TRUEの)場合のHTMLコードを出力するPHP処理
else :
    条件が満たされていない(FALSEの)場合のHTMLコードを出力するPHP処理
endif;
?>
<?php if (条件式) : ?>
    条件が満たされている(TRUEの)場合のHTMLコード
<?php else : ?>
    条件が満たされていない(FALSEの)場合のHTMLコード
<?php endif; ?>

パターン3とパターン4の場合、if (条件式) や else の後は「:」(コロン)で、
endif の後は「;」(セミコロン)です。
紛らわしく間違いやすい(ミスタイプしやすい)ので注意してください。

上記パターン1~4は処理自体は同じです。
世のWordPressテーマは、好みの問題であったり、コードを書くスペースの
問題だったりで、適時使い分けをするので、これらが混在しているのでは
と推測しています。

私的には、通常(複数人でプログラムを書く場合でも)書き方が統一されていないのは
「イラッ」とするのですが、WordPressの場合、明確なコーディング規約がある
わけでもなく、コードが縦に長くなり過ぎないような配慮も必要かなとは思いますので、
致し方ないのかなと・・・

ただ、世のWordPressテーマのテンプレートを見た際に混乱すると思いますので、
あえて記載しておきます。

関連記事

eyecatch_php

echo と print の違い

PHPでは (フォーマットの必要がないシンプルな) 文字列を出力 (表示) する...

記事を読む

eyecatch_php

シングルクォーテーションとダブルクォーテーションの違い

PHPでは文字列リテラル (※1) を扱う場合、 シングルクォーテーション (引...

記事を読む

カレンダー

2019年4月
« 7月    
 123456
78910111213
14151617181920
21222324252627
282930  
PAGE TOP ↑