pb condition ternaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb condition ternaire

Re: pb condition ternaire

par Skikit » 21 déc. 2009, 15:42

Salut,

Tu fais une faute de logique :
Tu initialises ta variable $sNomServeur à vide certes mais comme un string,
or tu utilises ensuite ta variable comme un booléen avec l'opérateur "!" qui signifie "not".
Pour tester si une chaîne est vide, il y a la fonction empty().
Ensuite, ta syntaxe est complétement fausse... Une ternaire remplace un if, toi tu mets les deux !

Re: pb condition ternaire

par Genova » 21 déc. 2009, 15:41

Oula, tu t'es pas mal embrouillé, tu as fait un mix entre un if normal et un ternaire. Sache que le ternaire n'est jamais indispensable, et que c'est un raccourci d'écriture qui peut rapidement devenir illisible, surtout utilisé à mauvais escient.

Voilà ce que tu veux faire sous forme de if :
function TEST( $sNomServeur='')
{
   if (!$sNomServeur)
   {
      $this->sNomServeur = $oFile_Xml->xpath("//Envois/ParamEnvoi[@id='SERVEUR_FTP']");
   }
   else
   {
      $this->sNomServeur = $sNomServeur;
   }
}
Et avec un ternaire :
function TEST( $sNomServeur='')
{
   $this->sNomServeur = (!$sNomServeur) ? $oFile_Xml->xpath("//Envois/ParamEnvoi[@id='SERVEUR_FTP']") : $sNomServeur;
}

Re: pb condition ternaire

par macgawel » 21 déc. 2009, 15:40

Bonjour,

j'ai un petit probleme pour realiser une condition ternaire dans une fonction:
function TEST( $sNomServeur=''){  // il se peut que rien ne soit passer à ma fonction en argument
    if (!$sNomServeur)? $this->sNomServeur = $oFile_Xml->xpath("//Envois/ParamEnvoi[@id='SERVEUR_FTP']") : $this->sNomServeur = $sNomServeur;
			


}
php me jette pourtant j'ai respecté les recommandations en protegant par des parentheses.Quelqu'un aurait il un debut de reponse .
Merci
Bonjour.

Voir le manuel :
<?php
// Exemple d'utilisation pour l'opérateur ternaire
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// La ligne ci-dessus est identique à la condition suivante :
if (empty($_POST['action'])) {
   $action = 'default';
} else {
   $action = $_POST['action'];
}

?>
Il faut utiliser if ou l'opérateur ternaire, pas les deux !

pb condition ternaire

par devcphp » 21 déc. 2009, 15:30

Bonjour,

j'ai un petit probleme pour realiser une condition ternaire dans une fonction:
function TEST( $sNomServeur=''){  // il se peut que rien ne soit passer à ma fonction en argument
    if (!$sNomServeur)? $this->sNomServeur = $oFile_Xml->xpath("//Envois/ParamEnvoi[@id='SERVEUR_FTP']") : $this->sNomServeur = $sNomServeur;
			


}
php me jette pourtant j'ai respecté les recommandations en protegant par des parentheses.Quelqu'un aurait il un debut de reponse .
Merci