If you follow MVC design pattern then only your view files should have HTML in them to begin with. Using the braceless syntax in these files only further separates them thematically from the rest of the code.
The major advantage of braceless syntax is that braces get lost while jumping into and out of php mode, especially if you use php short tags (which contrary to what is stated elsewhere, if you are using htaccess to deploy mod_rewrite in your application it is safe to use short tags in your application. The server admins CANNOT deny short tags to you while simultaneously granting mod_rewrite (and why they would even try is beyond me).
Another thing I've noted in the examples above - it is safe to omit the ending semicolon prior to a script close tag, and it's slightly easier to read. <? endforeach ?> than <?php endforeach; ?>
制御構造に関する別の構文
PHPは、いくつかの制御構造、つまり、if、 while、for、 foreach、switch に関する別の構文を提供します。 各構造において開き波括弧をコロン(:)、閉じ波括弧をそれぞれ endif;,endwhile;, endfor;,endforeach;, endswitch;に変更するのが 別の構文の基本的な形式となります。
<?php if ($a == 5): ?>
Aは5に等しい
<?php endif; ?>
上の例では、HTML ブロック "Aは5に等しい" はこの構文で 書かれた if 文の内部で入れ子になっています。 この HTML ブロックは、$a が 5 の場合にのみ表示されます。
この方法は、else や elseif にも同様に適用することができます。 次の例は、この形式で if 文を elseif および else とともに使用しています。
<?php
if ($a == 5):
echo "aは5に等しい";
echo "...";
elseif ($a == 6):
echo "aは6に等しい";
echo "!!!";
else:
echo "aは5でも6でもない";
endif;
?>
注意:
同じブロック内で別の構文を混ぜて使うことはできません。
制御構造に関する別の構文
dmgx dot michael at gmail dot com
19-Jul-2010 03:42
19-Jul-2010 03:42
ej at iconcept dot fo
28-May-2009 12:30
28-May-2009 12:30
if statement in 1 line
<?php
$hour = 11;
print $foo = ($hour < 12) ? "Good morning!" : "Good afternoon!";
?>
return Good morning!
flyingmana
26-Mar-2009 09:43
26-Mar-2009 09:43
It seems to me, that many people think that
<?php if ($a == 5): ?>
A ist gleich 5
<?php endif; ?>
is only with alternate syntax possible, but
<?php if ($a == 5){ ?>
A ist gleich 5
<?php }; ?>
is also possible.
alternate syntax makes the code only clearer and easyer to read
SM
04-Feb-2009 01:12
04-Feb-2009 01:12
The control structure should be like in BASIC languages:
<?php
if ($a == 12):
echo "a is 12\n";
end if;
while (true):
echo "loop loop loop\n";
end while;
?>
or just use end operator like in Ruby
<?php
if ($a == 12):
echo "a is 12\n";
end;
while (true):
echo "loop loop loop\n";
end;
?>
mido_alone2001 at yahoo dot com
07-Nov-2008 02:05
07-Nov-2008 02:05
Hello , when you going to make a script , you must try easist way to do and fastest way to parse ..
using alternative-syntax is very useful to shorten your code
e.g :
If you want to do:
<?php
$a=1 ;
if ($a==1) {
echo "<table border=1><tr><td>$a is equal to one </td></tr></table> " ;
}
?>
You can do it using alternative-syntax as following :
<?php
$a=1 ;
if ($a==1) :?>
<table border=1><tr><td><?echo $a ;?> is equal to one </td></tr></table>
<?php endif ; ?>
So the HTML code Won't excuted until the condition is true
[EDIT BY danbrown AT php DOT net: Contains a bug fix provided by (gmdebby AT gmail DOT com).]
jeremia at gmx dot at
28-Jan-2008 02:52
28-Jan-2008 02:52
If you wan't to use the alternative syntax for switch statements this won't work:
<div>
<?php switch($variable): ?>
<?php case 1: ?>
<div>
Newspage
</div>
<?php break;?>
<?php case 2: ?>
</div>
Forum
<div>
<?php break;?>
<?php endswitch;?>
</div>
Instead you have to workaround like this:
<div>
<?php switch($variable):
case 1: ?>
<div>
Newspage
</div>
<?php break;?>
<?php case 2: ?>
</div>
Forum
<div>
<?php break;?>
<?php endswitch;?>
</div>
spa
16-Oct-2007 11:40
16-Oct-2007 11:40
[EDITOR'S NOTE: reference to deleted note removed]
The end_; structure sometimes makes it easier to tell which block statement end you are looking at. It's much harder to tell which nested block a } belongs to than an end_;
skippy at zuavra dot net
27-Jun-2005 11:32
27-Jun-2005 11:32
If it needs saying, this alternative syntax is excellent for improving legibility (for both PHP and HTML!) in situations where you have a mix of them.
Interface templates are very often in need of this, especially since the PHP code in them is usually written by one person (who is more of a programmer) and the HTML gets modified by another person (who is more of a web designer). Clear separation in such cases is extremely useful.
See the default templates that come with WordPress 1.5+ (www.wordpress.org) for practical and smart examples of this alternative syntax.
