Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/07/2011, 10h46   #1
Membre du Club
 
Inscription : mai 2009
Messages : 34
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 34
Points : 55
Points : 55
Par défaut Comment lire cette syntaxe ?

Bonjour,

Je reprend un code, et je bloque sur cette syntaxe :

Code :
( !$this->is_empty_status() ) || $status = 'invalid';
Comment la lire svp ?

Merci !
17795 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 11h04   #2
Rédacteur
 
Avatar de Halleck
 
Développeur PHP & Architecte logiciel
Inscription : mars 2003
Messages : 562
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Développeur PHP & Architecte logiciel

Informations forums :
Inscription : mars 2003
Messages : 562
Points : 1 379
Points : 1 379
Ici c'est une manière de lancer une instruction sous condition :
Code :
1
2
3
 
false || die('ok'); // va effectuer le die
true || die('ok'); // il ne se passe rien
A ne pas confondre avec le || de comparaison :
Code :
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
tutoriels : tutos PHP, Web & SEO blog : blog.lepine.pro
membre de l'AFUP (Association des Utilisateurs de PHP)
Halleck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 11h17   #3
Membre du Club
 
Inscription : mai 2009
Messages : 34
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 34
Points : 55
Points : 55
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 :

Code :
if ( !$this->is_empty_status() ) $status = 'invalid';
Même pas un petit gain de place dans le code...
17795 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 13h41   #4
Rédacteur
 
Avatar de Halleck
 
Développeur PHP & Architecte logiciel
Inscription : mars 2003
Messages : 562
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Développeur PHP & Architecte logiciel

Informations forums :
Inscription : mars 2003
Messages : 562
Points : 1 379
Points : 1 379
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 :
defined('TOTO') || define('TOTO', value');
__________________
Zend PHP Certified Engineer
tutoriels : tutos PHP, Web & SEO blog : blog.lepine.pro
membre de l'AFUP (Association des Utilisateurs de PHP)
Halleck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2011, 15h37   #5
Invité régulier
 
Homme
Développeur Web
Inscription : juin 2010
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2010
Messages : 28
Points : 8
Points : 8
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
waxman est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h12.


 
 
 
 
Partenaires

Hébergement Web