note 40182 deleted from control-structures.alternative-syntax by vincent
| From: | vincent@php.net | Date: | Tue, 24 Feb 2004 15:56:52 +0000 |
| Subject: | note 40182 deleted from control-structures.alternative-syntax by vincent | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-65655@lists.php.net to get a copy of this message | ||
Note Submitter: cccso@free.fr
----
J'ai mis du temps à comprendre et si ma réponse est correcte et peut servir à éclairer les
autres ...
Il est indiqué ci dessous :
<?php
$result = ($one) ? "one" : ($two) ? "two" : "none"; // $result is
"two"
?>
La syntaxe normale est :
($test) ? if_test_is_true : if_test_is_false ;
Dans une syntaxe:
A ? B : C ? D : E;
comment php peut interpréter cette ligne ?
où se trouve la partie droite et la partie gauche du "?" et lequel des "?" ?
En fait il évalu la ligne par :
(A ? B : C) ? D :E;
Or l'évaluation de la commande (A ? B : C) retourne TRUE
Donc $result = D quel que soit le contenu (A ? B : C)
A ? B : C ? D : E; retourne D dans tous les cas !