2016-09-09 13 views
0

Ich suchte nach wahren/falschen Bool-Bedingungen aus dem PHP-Handbuch und ich dachte, dies sollte ein falsches Echo, aber es echos stattdessen eine wahre. Was macht die wirklich? Sagt es, dass die Funktion gerade funktioniert?Was macht die! -Funktion()?

http://php.net/manual/en/control-structures.if.php

<?php 
    $true=0; //false 

    function call($true) 
    { 
     if ($true =1){ 
      return TRUE; 

     } 
     if ($true =0){ 
      return FALSE; 
     } 
    } 

    if(call()) { 
     echo "true"; 
    } 

    if(!call()) // or if(!call()) { 
     echo "false"; 
    } 

    if($true) { 
     echo "<br>true"; 
    } 

    if(!$true) { 
     echo "<br>false"; 
    } 
?> 

Ausgang:

true 

false 
+3

See [Die 3 verschiedenen equals] (http: // stackover flow.com/q/2063480) für Ihre if-Anweisungen in Ihrer Funktion (Und https://en.wikipedia.org/wiki/Yoda_conditions als kleinen Trick). Beachten Sie, dass Sie Ihre Variable niemals an die Funktion übergeben. Siehe auch [Was bedeutet dieses Symbol?] (Http://stackoverflow.com/q/3737139) für das '!' Symbol. – Rizier123

+0

Von Ihrem Kommentar sehe ich meinen Fehler total verpasst das $ true ==. –

+1

Sie übergeben Ihre Variable auch nicht an die Funktion. – Rizier123

Antwort

1

Die Funktion call() gibt true oder false zurück. !call() würde einfach das Szenario angeben, in dem der Rückgabewert dieser Funktion falsch ist.

persönlich Funktionen Ich mag festlegen mit Boolesche Rückgabewerte, wenn sie aufgerufen wird, gleich einer Variablen, so würde ich auf jeden Fall schreiben:

$val = call(); 

if(!$val) {} 

In Ihrem Fall, wenn Sie Code auf ein Minimum reduzieren wollte, Sie könnten schreiben

echo call() ? "true" : "false"; 

diese Zeilen zu ersetzen:

if(call()) 
{ 
    echo "true"; 
} 

if(!call()) // or if(!call()) 
{ 
    echo "false"; 
} 
2

! ist der logische Operator not. Angenommen, Sie haben einen var definiert:

$myVar = true ; 
var_dump(!$myVar); // will echo false 

Ihr Anruf() Funktion true oder false zurück. So !cal(); wird das Gegenteil, false oder true zurückgeben.

Werfen Sie einen Blick auf die PHP Manual.