Bonjour,
Je reprend un code, et je bloque sur cette syntaxe :
Comment la lire svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part ( !$this->is_empty_status() ) || $status = 'invalid';
Merci !
Bonjour,
Je reprend un code, et je bloque sur cette syntaxe :
Comment la lire svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part ( !$this->is_empty_status() ) || $status = 'invalid';
Merci !
Ici c'est une manière de lancer une instruction sous condition :
A ne pas confondre avec le || de comparaison :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 false || die('ok'); // va effectuer le die true || die('ok'); // il ne se passe rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $toto = true || false; // true $toto = true || true; // true $toto = false || true; // true $toto = false || false; // false
j'y pense, il est également possible de lancer une commande
Zend PHP Certified Engineer, Certifié Symfony2
blog : blog.lepine.pro
Secrétaire de l'AFUP (Association des Utilisateurs de PHP)
Ah je ne la connaissais pas ! Merci beaucoup Halleck !
Donc si j'ai bien compris, ma variable $status aura pour valeur 'invalid' uniquement si la fonction is_empty_status() renvoie FALSE.
Ceci dit je ne vois pas l'utilité par rapport à la syntaxe classique :
Même pas un petit gain de place dans le code...
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ( !$this->is_empty_status() ) $status = 'invalid';
Effectivement, l'intérêt peut être limité, surtout au niveau de la clarté du code.
Ceci dit, il est fréquent de voir cette syntaxe pour des définitions de constantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part defined('TOTO') || define('TOTO', value');
Zend PHP Certified Engineer, Certifié Symfony2
blog : blog.lepine.pro
Secrétaire de l'AFUP (Association des Utilisateurs de PHP)
Pour moi, c'est le meme || que celui de comparaison sauf qu'on utilise la faculté de php à ne pas évaluer le membre de droite d'une condition OU lorsqu'on a un false dès le membre de gauche (optimisation d'exécution)
A mes yeux, c'est un détournement bien pratique de cette optimisation
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager