Warum ist wahr mehr als 3 in PHP

8

Ich frage mich, warum die folgende Anweisung in PHP wahr zurückgibt?

%Vor%

zum Beispiel wird eine solche Zeile 1

ausgeben %Vor%

Kann mir jemand die Logik dahinter erklären?

    
Dharman 04.12.2012, 21:08
quelle

2 Antworten

18

Zusätzlich zu Davids Antwort dachte ich, etwas hinzuzufügen, um ein bisschen mehr Tiefe zu geben.

PHP im Gegensatz zu anderen Programmiersprachen, wenn Sie nicht mit Ihrer Operatoren / Syntax vorsichtig sind, können Sie in knifflige Potholes geraten, wie Sie es erleben.

Wie David sagte,

  

4 ist auch wahr (weil es nicht null ist), und wahr ist gleich wahr   es ist auch größer als oder gleich wahr.

Berücksichtigen Sie dies Wahr ist größer als falsch.

wahr = 1

falsch = 0

Also nimm das zum Beispiel:

%Vor%

Das obige gibt

aus
  

Das ist wahr

Aber wenn du das nimmst:

%Vor%

Das obige gibt aus:

  

Dies ist falsch

Das hinzugefügte Gleichheitszeichen, sucht nach einer genauen Übereinstimmung und sucht daher nach integer 1 , anstatt dass PHP 1 als wahr liest.

Ich weiß, das ist ein wenig off-topic, aber wollte nur einige Schlaglöcher erklären, die PHP enthält.

Ich hoffe, das ist etwas Hilfe

Bearbeiten:

Als Antwort auf Ihre Frage:

  

echo wahr & gt; = 4;

Grund, dass Sie 1 als Ausgabe sehen, ist, weil wahr / falsch als Zahlen interpretiert wird (siehe oben)

Unabhängig davon, ob Sie echo true>=4 oder nur echo true; php als 1 und false als 0 setzen

    
Daryl Gill 04.12.2012, 21:20
quelle
20

4 ist auch true (weil es nicht null ist), und true ist gleich true , also ist es auch größer oder gleich true .

Wenn ein Bool oder eine Null mit einem anderen als einem String verglichen wird, wird dieses Ding in einen Bool umgewandelt. Siehe die Dokumente .

    
David Schwartz 04.12.2012 21:09
quelle

Tags und Links