if
while
for
foreach
switch
に関する別の構文がコロン構文です。
####基本的な考え方
各構造において開き波括弧をコロン:
、閉じ波括弧をそれぞれ endif;
,endwhile;
, endfor;
,endforeach;
,endswitch;
に変更するのが コロン構文の基本的な形式となります。
sample_通常使わない形ですが、コロン構文の基本形はこうなります。
<?php
if ($a == 5):
echo 'aは5に等しい';
else:
echo 'aは5と等しくない';
endif;
?>
####タグとコロン構文の融合(重要)
####if 文(公式)
sample_if
<?php
if ($a == 5) {
echo 'aは5と等しい';
} else {
echo 'aは5と等しくない';
}
?>
コロン構文
<?php if ($a == 5): ?>
aは5に等しい
<?php else: ?>
aは5と等しくない
<?php endif; ?>
####foreach 文(公式)
sample_foreach
<?php
$users = [0 => ['name' => 'ichiro'],
1 => ['name' => 'jiro'],
2 => ['name' => 'saburo'], //最後のカンマはあってもなくても可(PHP5.4~)
];
foreach ($users as $user) {
echo $user['name'] . '<br>';
}
?>
コロン構文1
<?php foreach ($users as $user): ?>
<?= $user['name'] . ','; ?>
<?php endforeach; ?> //-> ichiro,jiro,saburo,
コロン構文2: foreachとif
<?php foreach ($users as $user): ?>
<?php if ($user['name'] == 'jiro'): ?>
<?= $user['name']; ?>
<?php endif; ?>
<?php endforeach; ?> //-> jiro
####switch 文(公式)
sample_switch
<?php
$user = 'ichiro';
switch ($user) {
case 'ichiro':
echo 'イチロー';
break;
case 'jiro':
echo 'ジロー';
break;
} //-> イチロー
?>
コロン構文: インデントを入れると無効なコードになる
<?php switch ($user): ?>
<?php case 'ichiro': ?>
イチロー
<?php break; ?>
<?php case 'jiro': ?>
ジロー
<?php endswitch; ?> //-> イチロー
####while 文(公式): 参考
sample_while_コロン構文
<?php $i = 0; ?>
<?php while ($i <= count($users) - 1): ?>
<?= $i . ':' . $users[$i]['name'] . ','; ?>
<?php $i++; ?>
<?php endwhile; ?> //-> 0:ichiro,1:jiro,2:saburo,
####for 文(公式):参考
sample_for_コロン構文
<?php for ($i = 0; $i <= count($users) - 1; $i++): ?>
<?= $i . ':' . $users[$i]['name'] . ','; ?>
<?php endfor; ?> //-> 0:ichiro,1:jiro,2:saburo,
####endの後のセミコロンについて
<?php endif; ?>
or <?php endif ?>
??
公式を眺めているとなし
の省略形を多用していますが、統一感があればどちらでもいいと思います
セミコロン
コロン構文の基本形
<?php
if ($a == 5):
----
endif; //-> セミコロンあり
?>
タグと融合している形
<?php if ($a == 5): ?>
----
<?php endif; ?> //-> セミコロンなしは省略形
注: できるだけ短く記述するために、ショートタグ<?=
を使っています。
<?=
は<?php echo
の省略形です。
LGTMお願いします!
モチベーションがあがります!