Question

Je construis quelques règles simples de validation en php et mon IDE (phped) se plaint de la syntaxe.

Quelqu'un peut-il me dire quel est le problème avec ce qui suit?

function notBlank($str) {
    (strlen($str) == 0) ? return false : return true;
}

phped se plaint de "retour inattendu"

Tout conseil apprécié.

Merci.

Était-ce utile?

La solution

écrivez-le comme ceci:

function notBlank($str){
   return strlen($str) != 0;
}

Autres conseils

Écrivez-le comme ceci:

function notBlank($str) {
    return ( strlen($str) == 0 ? false : true );
}

Vous ne pouvez pas utiliser return avec les opérateurs ternaires. Si vous voulez conserver cette syntaxe, vous devez faire quelque chose comme ceci:

function notBlank($str = '') {
    $var = (strlen($str) == 0) ? false : true;
    return $var;
}

Néanmoins, notez que la manière de faire par défaut est plus lisible:

function notBlank($str = '') {
    if(strlen($str) == 0)
        return false;
    else
        return true;
}

J'espère que ça aide!

La réponse de GSto semble être la meilleure, mais vous voudrez peut-être aussi vérifier la fonction vide de php:

http://www.php.net/empty

strlen () renvoie 0 lorsque la chaîne est vide et en PHP 0 == false . Donc vraiment, il n’est pas nécessaire d’envelopper strlen () dans une fonction. Si vous voulez insister sur une réponse booléenne, lancez-la. c'est-à-dire:

(bool) strlen($string);

Donc, au lieu de votre fonction, qui est supposément appelée dans un bloc if, vous auriez juste

if(strlen($string)) //etc.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top