Petite question de syntaxe

Eléphant du PHP | 246 Messages

28 août 2007, 14:48

Hello les gens ! J'ai une question simple, mais j'ai pas pu faire de recherche sur google, je sais pas comment s'apelle cette façon de retourner une valeur.

Enfaite j'avais vu une fois quelque chose du genre :
$Variable = (1+1==2) ? "1 + 1 vaux bien 2" : "1 + 1 ne vaut pas 2";
Enfin vous voyez sûrement de quoi je parle. Comment s'apelle cette façon déjà ? Et ma question c'est, est-ce qu'on peut ne pas retourner de résultat si la condition est fausse ? Par exemple :
$Variable = (1+1==2) ? "1 + 1 vaux bien 2" ;
Sauf que là ya une erreur de syntaxe. J'ai tenté plusieurs possibilité mais je trouve pas bonne ^^

Merci d'avance ! :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

28 août 2007, 14:53

C'est un opérateur ternaire :)

Quant à ton histoire de retournement j'ai rien compris, donc je dirais suffit de remplace le == par un != pour avoir la condition inverse, mais c'est probablement pas ça :)
En attendant ta syntaxe est fausse, il faut nécessairement un ':' et la valeur à utiliser si le test est fausse (sinon un simple if() fonctionnera très bien)

Edit : bon si en fait j'ai compris pour le retour (suffisait de bien lire :)) et la réponse est non, il faut nécessaire un si oui / si non. Mais si tu n'as pas de else un simple if() est tout aussi facile à écrire :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 246 Messages

28 août 2007, 15:00

Ha oui, l'opérateur ternaire, merci ^^

Et sinon pour mon autre question je reprend un exemple :
$nom     = (!empty($_POST["nom"]))         ? $_POST["nom"]     : ""; 
Si il n'y a rien dans le champs "nom" alors on met "" (donc rien) mais ma question, est-ce qu'on peut ne pas mettre ce : ""

Avec une condition if on n'est pas obligé de mettre un else, alors que là il semblerait qu'on soit obligé ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

28 août 2007, 15:04

Bah vi, voir l'edit que je me suis empressé de rajouter dans le post précédent, mais l'opérateur ternaire implique nécessairement un else :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 246 Messages

28 août 2007, 15:23

Ok merci, je sais que c'était qu'un petit details mais je voulais savoir ^^