2011-09-03 4 views
3

Quelqu'un peut-il me dire quelle est la condition dans cette déclaration PHP?Déclaration de retour conditionnelle PHP?

return $node->type == 'article' ? mymodule_page_article($node) : mymodule_page_story($node); 

Je suis désolé si ce n'est pas le lieu de poser une telle question simple mais je trouve qu'il est difficile pour rechercher la structure de code spécifique (surtout quand je ne sais pas le nom de celui-ci).

Répondre

7

Ceci est un ternary operator.

Il est équivalent à

if($node->type == 'article') { 
    return mymodule_page_article($node); 
} else { 
    return mymodule_page_story($node); 
} 

Ce qu'il fait est: si les choses avant que le ? est vrai, renvoie le résultat de l'expression dans la première clause (les choses entre ? et :). Si c'est faux, alors il retourne le résultat de la deuxième clause (le truc après le :).

0

c'est une expression ternaire.

la condition est $ node-> Type == 'article' et s'il est vrai qu'il fait mymodule_page_article ($ node) else mymodule_page_story ($ node)

0

Si le type de nœud est égal à 'article' ne mymodule_page_article($node) , si elle ne correspond pas alors faire mymodule_page_story($node)

2

Ceci est l'opérateur ternaire ?: et peut être complété comme suit:

if ($node->type == 'article') { 
    return mymodule_page_article($node); 
} else { 
    return mymodule_page_story($node); 
} 
1

Cela équivaut à:

if($node->type == 'article') 
{ 
    return mymodule_page_article($node); 
} 
else 
{ 
    return mymodule_page_story($node); 
} 

Ceci est appelé l'opérateur ternaire. Voir la section à ce sujet ici pour plus d'informations: http://www.php.net/operators.comparison

Questions connexes