<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.control-structures.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'control-structures.elseif.php',
    1 => 'elseif/else if',
    2 => 'elseif/else if',
  ),
  'up' => 
  array (
    0 => 'language.control-structures.php',
    1 => 'Les structures de contr&ocirc;le',
  ),
  'prev' => 
  array (
    0 => 'control-structures.else.php',
    1 => 'else',
  ),
  'next' => 
  array (
    0 => 'control-structures.alternative-syntax.php',
    1 => 'Syntaxe alternative',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'language/control-structures/elseif.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="control-structures.elseif" class="sect1">
 <h2 class="title">elseif/else if</h2>
 <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p>
 <p class="para">
  <code class="literal">elseif</code>, comme son nom l&#039;indique, est une combinaison
  de <code class="literal">if</code> et de <code class="literal">else</code>. Comme l&#039;expression
  <code class="literal">else</code>, il permet d&#039;exécuter une instruction
  après un <code class="literal">if</code> dans le cas où le &quot;premier&quot;
  if est évalué comme <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>. Mais,
  à la différence de l&#039;expression <code class="literal">else</code>,
  il n&#039;exécutera l&#039;instruction que si l&#039;expression conditionnelle
  <code class="literal">elseif</code> est évaluée comme
  <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>. L&#039;exemple suivant affichera
  <span class="computeroutput">a est plus grand que b</span>,
  <span class="computeroutput">a est égal à b</span> ou
  <span class="computeroutput">a est plus petit que b</span> :
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">$a </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">$b</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"a est plus grand que b"</span><span style="color: #007700">;<br />} elseif (</span><span style="color: #0000BB">$a </span><span style="color: #007700">== </span><span style="color: #0000BB">$b</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"a est égal à b"</span><span style="color: #007700">;<br />} else {<br />    echo </span><span style="color: #DD0000">"a est plus petit que b"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  Il est possible d&#039;avoir plusieurs <code class="literal">elseif</code> qui se suivent
  les uns après les autres, après un <code class="literal">if</code> initial.
  Le premier <code class="literal">elseif</code> qui sera évalué
  à <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> sera exécuté. En PHP, il est possible d&#039;écrire
  <code class="literal">else if</code> en deux mots et son comportement sera identique
  à celui de <code class="literal">elseif</code> (en un seul mot). La sémantique
  des deux expressions est légèrement différente (tout comme en C), mais au bout du compte,
  le résultat sera exactement le même.
 </p>
 <p class="simpara">
  L&#039;expression <code class="literal">elseif</code> est exécutée
  seulement si le <code class="literal">if</code> précédent et tout
  autre <code class="literal">elseif</code> précédent sont
  évalués comme <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>, et que
  le <code class="literal">elseif</code> est évalué à
  <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
 </p>
 <blockquote class="note"><p><strong class="note">Note</strong>: 
  <span class="simpara">
   À noter que <code class="literal">elseif</code> et <code class="literal">else if</code>
   sont traités de la même façon seulement quand des accolades sont utilisées,
   comme dans l&#039;exemple ci-dessus. Lors de l&#039;utilisation de &quot;:&quot; pour définir
   les conditions <code class="literal">if</code>/<code class="literal">elseif</code>, l&#039;utilisation
   de <code class="literal">elseif</code> en un seul mot devient nécessaire. PHP
   échouera avec une erreur d&#039;analyse si <code class="literal">else if</code> est utilisé. 
  </span>
 </p></blockquote>
 <p class="para">
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">/* Mauvaise méthode : */<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">$a </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">$b</span><span style="color: #007700">):<br />    echo </span><span style="color: #0000BB">$a</span><span style="color: #007700">.</span><span style="color: #DD0000">" est plus grand que "</span><span style="color: #007700">.</span><span style="color: #0000BB">$b</span><span style="color: #007700">;<br />else if (</span><span style="color: #0000BB">$a </span><span style="color: #007700">== </span><span style="color: #0000BB">$b</span><span style="color: #007700">): </span><span style="color: #FF8000">// ne compilera pas<br />    </span><span style="color: #007700">echo </span><span style="color: #DD0000">"La ligne ci-dessus provoque une erreur d'interprétation"</span><span style="color: #007700">;<br />endif;</span></span></code></div>
   </div>

  </div>

  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">/* Bonne méthode : */<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">$a </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">$b</span><span style="color: #007700">):<br />    echo </span><span style="color: #0000BB">$a</span><span style="color: #007700">.</span><span style="color: #DD0000">" est plus grand que "</span><span style="color: #007700">.</span><span style="color: #0000BB">$b</span><span style="color: #007700">;<br />elseif (</span><span style="color: #0000BB">$a </span><span style="color: #007700">== </span><span style="color: #0000BB">$b</span><span style="color: #007700">): </span><span style="color: #FF8000">// Les deux mots sont collés<br />    </span><span style="color: #007700">echo </span><span style="color: #0000BB">$a</span><span style="color: #007700">.</span><span style="color: #DD0000">" égal "</span><span style="color: #007700">.</span><span style="color: #0000BB">$b</span><span style="color: #007700">;<br />else:<br />    echo </span><span style="color: #0000BB">$a</span><span style="color: #007700">.</span><span style="color: #DD0000">" n'est ni plus grand ni égal à "</span><span style="color: #007700">.</span><span style="color: #0000BB">$b</span><span style="color: #007700">;<br />endif;<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
</div><?php manual_footer($setup); ?>