if statement in 1 line
<?php
$hour = 11;
print $foo = ($hour < 12) ? "Good morning!" : "Good afternoon!";
?>
return Good morning!
Syntaxe alternative
PHP propose une autre manière de rassembler des instructions à l'intérieur d'un bloc, pour les fonctions de contrôle if, while, for, foreach et switch. Dans chaque cas, le principe est de remplacer l'accolade d'ouverture par deux points (:) et l'accolade de fermeture par, respectivement, endif;, endwhile;, endfor; ou endswitch;.
<?php if ($a == 5): ?>
A égal 5
<?php endif; ?>
Dans l'exemple ci-dessus, le bloc HTML "A égal 5" est inclus à l'intérieur d'un if en utilisant cette nouvelle syntaxe. Ce code HTML ne sera affiché que si la variable $a est égale à 5.
Cette autre syntaxe fonctionne aussi avec le else et elseif. L'exemple suivant montre une structure avec un if, un elsif et un else utilisant cette autre syntaxe :
<?php
if ($a == 5):
echo "a égal 5";
echo "...";
elseif ($a == 6):
echo "a égal 6";
echo "!!!";
else:
echo "a ne vaut ni 5 ni 6";
endif;
?>
Syntaxe alternative
ej at iconcept dot fo
28-May-2009 02:30
28-May-2009 02:30
flyingmana
26-Mar-2009 10:43
26-Mar-2009 10: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 02:12
04-Feb-2009 02: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 03:05
07-Nov-2008 03: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 03:52
28-Jan-2008 03: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
17-Oct-2007 01:40
17-Oct-2007 01: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 01:32
27-Jun-2005 01: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.
