2009-08-12 10 views
0
if (strlen($title) > 2 && ($msg) > 2 && ($email) > 2)) { 
//true 
} else { 
//false 
} 

Quelle serait la bonne façon de vérifier plus de 1 var? Cela ne fonctionnera pas .. à bien des égardsphp fonction strlen et 2 variables

Répondre

0

Qu'en est-il d'appeler strlen pour chacune des vars?

if (strlen($title) > 2 && strlen($msg) > 2 && strlen($email) > 2) { 
//true 
} else { 
//false 
} 

Si vous voulez obtenir la longueur de chaque variable, vous devez utiliser la fonction qui fait cela ... sur chacune de ces variables.

EDIT: devrait tester le code avant de poster: il y a une parenthèse fermante dans votre code qui ne fait pas partie ;-)

Si vous continuez, vous obtiendrez une erreur Parse.

0

Je pense que vous voulez faire ceci:

if (strlen($title) > 2 && strlen($msg) > 2 && strlen($email) > 2) { 
    //true 
} else { 
//false 
} 

Lorsque vous appelez une fonction, vous devez spécifier le nom de la fonction et les arguments à cette fonction entre parenthèses immédiatement après le nom de la fonction. Si la fonction que vous souhaitez utiliser n'accepte pas un nombre variable d'arguments (par exemple strlen), vous devez appeler la fonction plusieurs fois, une fois pour chaque variable que vous avez.

Dans des cas comme cela, il peut souvent être mieux pour résumer ce genre de choses dans sa propre fonction comme ceci:

function isValid($title, $msg, $email) { 
    return 
     strlen($title) > 2 && 
     strlen($msg) > 2 && 
     strlen($email) > 2; 
} 

Ensuite, vous changer votre déclaration if d'utiliser la nouvelle fonction comme ceci:

1

Vous avez juste besoin d'appeler strlen sur les deux autres variables pour tester la longueur du test est> 2. En outre, la dernière parenthèse doit être supprimée. Comme si:

if (strlen($title) > 2 && strlen($msg) > 2 && strlen($email) > 2) { 
4

Ce que vous devez noter est que tout entre un opérateur booléen (par exemple: & &) n'est pas lié à l'autre.

par exemple: strlen($a) && $b

n'est pas la même chose que:

strlen($a) && strlen($b) 

Contrairement à la langue parlée où vous pouvez dire « a et b sont plus grandes alors 2 » vous devez programmer comme « un est plus grand puis 2 et b est plus grand que 2"

-à-dire:

if (strlen($title) > 2 && strlen($msg) > 2 && strlen($email) > 2) 

Si yo u veulent une fonction réutilisable qui vérifie la longueur, et prend un nombre arbitraire d'arguments quelque chose comme cela fonctionnerait:

function validateLength() { 

// get all passed in arguments 
$args = func_get_args(); 
// get the first argument as the length 
$len = array_shift($args); 

foreach($args as $arg) { 

    if (strlen($arg) < $len) return false; 

} 
return true; 

} 

Utilisation:

$valid = validateLength(2, $title, $msg, $email);