2008-08-05 8 views

Répondre

38

C'est brisé parce que « faux » comme une chaîne évaluera true comme un booléen.

Cependant, il s'agit d'une expression ternaire non nécessaire, car les valeurs résultantes sont simples vrai et faux. Cela serait équivalent:

$canMerge = ($condition1 && $condition2); 
2

La valeur de 'false' est vraie. Vous devez supprimer les guillemets:

$canMerge = ($condition1 && $condition2) ? true : false; 
+1

Cette façon semble être une tentative-agriculture réputation. Un utilisateur de 3k-rep qui ne peut pas faire la différence entre une chaîne et un booléen, qui répond à sa question une minute après l'avoir fait? – moo

+3

Merci pour vos commentaires Orlando et Ed. Ce fut un problème qui m'a attrapé et je l'ai posté pour le bénéfice de la mienne et de l'autre. Répondre à vos propres questions est parfaitement adapté à la FAQ. Peut-être que vous devriez aller le relire si cela fait un moment ... – Polsonby

0

Cela me semble une question raisonnable en particulier en raison de la différence dans le fonctionnement de PHP.

Par exemple, le code suivant affichera 'son faux'

$a = '0'; 

if($a) 
{ 
    echo 'its true'; 
} 
else 
{ 
    echo 'its false'; 
} 
-1
$canMerge = ($condition1 && $condition2); 

puis

if ($canMerge){ 
    echo "Stuff"; 
} 
+0

Cela n'explique pas quel est le problème, ce que le PO a demandé. –

Questions connexes