2009-12-07 13 views
7

Ich kann das nicht herausfinden.PHP Boolesch TRUE/FALSE?

Wenn ich tippe:

function myfunction(){ 
    ...... 
    if ... 
     return TRUE; 
    if ... 
     return FALSE; 
} 

Warum kann ich es wie folgt verwendet werden:

$result = myfunction(); 
if ($result == TRUE) 
... 
if ($result == FALSE) 
... 

Oder muss ich verwenden:

$result = myfunction(); 
if ($result == 1) 
... 
if ($result == 0) 
... 

Oder diese:

$result = myfunction(); 
if ($result) 
... 
if (!$result) 
... 
+0

Kleine Bemerkung: Code, der wie folgt lautet: 'wenn ... return true; sonst return false; 'sollte ** immer ** zu' return ... === true; 'oder in einer typsicheren Sprache einfach zu' return ...; '. Das 'if' macht hier einfach keinen Sinn, da die Bedingung, die wir testen, bereits dem Rückgabewert entspricht. –

Antwort

17

ich Ihre Frage nicht vollständig verstehen, aber Sie Sie mit folgenden Einschränkungen zur Verfügung gestellt, alle Beispiele verwenden können:

Wenn Sie sagen, if (a == TRUE) (oder, da der Vergleich zu true redundant ist, einfach if (a)), müssen Sie verstehen, dass PHP wird mehrere Dinge als wahr bewerten: 1, 2, 987, "Hallo", etc .; Sie sind alle "wahre" Werte. Dies ist selten ein Problem, aber Sie sollten es verstehen. Wenn die Funktion mehr als true oder false zurückgeben kann, könnten Sie daran interessiert sein, === zu verwenden. === vergleicht den Typ der Variablen: ist true, aber "a" === true ist falsch.

+0

Schöne Antwort.Es löscht wirklich einige Punkte. – skiabox

0
if($variable) 
//something when truw 
else 
//something else when false 

Denken Sie daran, dass der Wert -1 als TRUE gilt, wie jede andere Zahl ungleich Null (ob negativ oder positiv). FALSCH würde 0 Vs. sein ...

5

Sie mögen dieses

$result = myfunction(); 
if ($result === TRUE) 
... 
if ($result === FALSE) 
... 
+0

ich würde sagen, Sie sollten es so machen ... – HorusKol

3
tun könnte

Sie if($result == TRUE) verwenden können, aber das ist zuviel des Guten als if($result) genug ist.

6

Wenn Sie nicht weiterhin das Ergebnis Variable $ result verwenden müssen, würde ich die folgende kürzeste Version tun:

if (myfunction()) { 
    // something when true 
} else { 
    // something else when false 
} 
Verwandte Themen