2009-10-29 7 views
2

J'ai trouvé cette ligne de code et j'essaie de comprendre ce qu'elle fait. La partie que je ne connais pas est le point d'interrogation et le côlon. A quoi servent ces caractères?Question de syntaxe PHP

$string = $array[1] . ($array[0] === 47 ? '' : ' word'); 
+0

Ceci est l'opérateur conditionnel. C'est aussi un type d'opérateur ternaire (simplement parce qu'il a 3 opérandes) et souvent les gens font l'erreur de l'appeler l'opérateur ternaire qui n'a pas vraiment de sens. –

+0

Aussi c'est une copie, s'il vous plaît voir http://stackoverflow.com/questions/889373/quick-php-syntax-question et http://stackoverflow.com/questions/1276909/php-syntax-question-what-does -le point d'interrogation-et-deux-points. –

+0

@Andrew - bête ou pas, le manuel PHP a nommé cette construction L'opérateur ternaire, donc ce n'est pas une erreur de s'y référer en tant que tel http://php.net/manual/fr/language.operators.comparison.php –

Répondre

5

C'est un opérateur ternaire; essentiellement une condition à court terme.

Il est le même que:

$string = $array[1]; 

if ($array[0] !== 47) 
    $string .= ' word'; 

Voir this section in the PHP manual (la section "ternaires Opérateur").

+0

+1 pour explication avec similitude avec le code normal. – mauris

0

C'est l'opérateur ternaire.

est ici une référence à un tutorial

Il fonctionne en quelque sorte comme ceci:

function tern() 

    if ($array[0] === 47) 
    { 
     return ''; 
    } 
    else 
    { 
     return 'word'; 
    } 
}