PHPでif文やfor文を書くときに、通常は波括弧({}
)を使って、下記のように制御構文を書くと思います。
<?php
if (true) {
echo "trueです";
} else {
echo "falseです";
}
for($i = 0;$i < 10;$i++) {
echo "Hello$i";
}
波括弧を使わないで、コロンに置き換えて書く方法があるので、制御構文の別の書き方についてまとめてみました。
使いどころとしては、HTML内にPHPタグを書くときに使うのがいいかと思います。
波括弧で書くよりも、見やすいコードになる気がします。
実際に書いてみたので、見比べてみましょう。
コロン制御構文の書き方一覧
コロンを使う制御構文の書き方を一覧化してみました。
波括弧({
)がなくなって、コロンになる感じですね。
終わりの閉じる波括弧(}
)もなくなって、それぞれendif;,endwhile;, endfor;,endforeach;, endswitch;
のようになります。
if文
通常時は下記のように書きます。
if (true) {
echo "trueです";
} else {
echo "falseです";
}
別の書き方では、こうなります。
if (true):
echo "trueです";
else:
echo "falseです";
endif;
while文
通常時は下記のように書きます。
while (true) {
echo "hello!!";
}
別の書き方では、こうなります。
while (true):
echo "hello!!";
endwhile;
for文
通常時は下記のように書きます。
for ($i = 0;$i < 10;$i++) {
echo "hello!!";
}
別の書き方では、こうなります。
for ($i = 0;$i < 10;$i++):
echo "hello!!";
endfor;
foreach文
通常時は下記のように書きます。
$fruits = ['apple', 'orange', 'banana'];
foreach ($fruits as $fruit) {
echo $fruit;
}
別の書き方では、こうなります。
$fruits = ['apple', 'orange', 'banana'];
foreach ($fruits as $fruit):
echo $fruit;
endforeach;
switch文
通常時は下記のように書きます。
$fruit = 'apple';
switch ($fruit) {
case 'apple':
echo "りんご";
break;
default:
echo "それ以外";
break;
}
別の書き方では、こうなります。
$fruit = 'apple';
switch ($fruit) :
case 'apple':
echo "りんご";
break;
default:
echo "それ以外";
break;
endswitch;
HTMLの中で制御構文を書いてみた
HTMLの中で制御構文を使ってみました。
helloをbootstrap4のアラートで10回出しています。
2の倍数の場合はhello1
が出力されて、それ以外の場合はhello2
が出力されます。
通常の制御構文を使った場合は、このようになります。
<html>
<head>
<title>title hoge</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<body>
<div class="container">
<?php for($i = 0; $i < 10; $i++) { ?>
<div class="alert alert-primary" role="alert">
<?php if($i % 2 == 0) { ?>
<span>hello1</span>
<?php } else { ?>
<span>hello2</span>
<?php } ?>
</div>
<?php } ?>
</div>
</body>
</html>
コロンを使って、書いた場合はこうなります。
<html>
<head>
<title>title hoge</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<body>
<div class="container">
<?php for($i = 0; $i < 10; $i++) : ?>
<div class="alert alert-primary" role="alert">
<?php if($i % 2 == 0) : ?>
<span>hello1</span>
<?php else: ?>
<span>hello2</span>
<?php endif; ?>
</div>
<?php endfor; ?>
</div>
</body>
</html>
どうですか?
HTMLの中に書く場合はこのように書いたほうが見やすい感じがしませんか。
endif;
やendfor;
などが入っているので終わりが分かりやすいですね。
終わりに
コロンの制御構文を書くことで、HTMLの中では見やすくなったかと思います。
基本的にPHPタグをHTMLの中に直接書くことはあまりないかもしれません。(LaravelのBladeやSPAでVueやReactを使うため)
書くことがある場合には、見やすくなるので使っていったら良いかと思いました。
コメント