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

Was wäre die korrekte Art der Überprüfung mehr als 1 var? Dies wird nicht funktionieren .. versucht viele Möglichkeitenphp strlen Funktion und 2 vars

Antwort

0

Was ist mit dem Aufruf strlen für jeden der Vars?

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

Wenn Sie die Länge jeder Variablen erhalten möchten, sollten Sie die Funktion, die dies tut, für jede dieser Variablen verwenden.

EDIT: sollte den Code testen, bevor es Posting: Es gibt ein Schließen parenthese in Ihrem Code, der nicht ;-)

gehört Wenn Sie es halten, werden Sie einen Parse-Fehler.

0

Ich glaube, Sie wollen, dies zu tun:

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

Beim Aufruf einer Funktion benötigen Sie den Funktionsnamen angeben und dann die Argumente für diese Funktion in Klammern unmittelbar nach dem Funktionsnamen. Wenn die Funktion, die Sie verwenden möchten, keine variable Anzahl von Argumenten akzeptiert (wie zum Beispiel strlen), müssen Sie die Funktion mehrere Male aufrufen, einmal für jede Variable, die Sie haben.

In Fällen wie diesen kann es oft am besten sein, diese Art von Sachen wie diese in seiner eigenen Funktion zu kapseln:

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

Dann würden Sie Ihre if Anweisung ändern, um die neue Funktion wie folgt zu verwenden:

1

Sie müssen nur Strlen auf den anderen zwei Variablen aufrufen, um die Länge des Tests zu testen, ist> 2. Auch die letzte Klammer sollte entfernt werden. Wie so:

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

Was müssen Sie beachten Sie, dass ist alles zwischen einem Booleschen Operator (zB: & &) nicht mit dem anderen zusammenhängt.

zB: strlen($a) && $b

nicht das gleiche wie:

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

Im Gegensatz zu dem gesprochenen Sprache, wo man sagen kann „a und b größer als 2“ Sie haben ihn zu programmieren als „ein größeres ist dann 2 und b größer als 2"

dh:

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

Wenn yo u wollen eine wiederverwendbare Funktion, die Längen und nimmt eine beliebige Anzahl von Argumenten etwas wie dies funktionieren würde, überprüft:

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; 

} 

Verbrauch:

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