Heim >Backend-Entwicklung >PHP-Tutorial >PHP hat eine vordefinierte Konstante true, deren Wert die Ganzzahl 1 ist. Wie ist das zu verstehen?
Als ich get_defined_constants() ausführte, entdeckte ich versehentlich, dass PHP eine interne Konstante mit dem Namen true und dem Wert 1 hat. Es gibt auch Konstanten mit den Namen false und null.
Behandelt PHP true als Konstante? Sollte es nicht ein „Wert“ sein?
Sollte es nicht ein Wert mit dem Datentyp Boolean sein?
Ich habe versucht, echo(true) auszuführen, das Browser-Ausgabezeichen 1, und ich var_dump(true), ausgeben bool(true), ist das nicht ein offensichtlicher Widerspruch?
Außerdem ist true===1 auch nicht wahr. true==1 ist etabliert.
Ich möchte also wissen, wie PHP mit true false null umgeht.
Als ich get_defined_constants() ausführte, entdeckte ich versehentlich, dass PHP eine interne Konstante mit dem Namen true und dem Wert 1 hat. Es gibt auch Konstanten mit den Namen false und null.
Behandelt PHP true als Konstante? Sollte es nicht ein „Wert“ sein?
Sollte es nicht ein Wert mit dem Datentyp Boolean sein?
Ich habe versucht, echo(true) auszuführen, das Browser-Ausgabezeichen 1, und ich var_dump(true), ausgeben bool(true), ist das nicht ein offensichtlicher Widerspruch?
Außerdem ist true===1 auch nicht wahr. true==1 ist etabliert.
Ich möchte also wissen, wie PHP mit true false null umgeht.
Echo-Eingabe ist eine Zeichenfolge, daher wird „true“ typkonvertiert. Sie können hier darauf verweisen
<code>Printing or echoing a FALSE boolean value or a NULL value results in an empty string: (string)TRUE //returns "1" (string)FALSE //returns "" echo TRUE; //prints "1" echo FALSE; //prints nothing!</code>
Referenzdokument
Schiefes Gebäude. Erzählen Sie eine Geschichte über C.
Die Windows-API hat einen Datentyp BOOL
, der ähnlich wie
<code class="cpp">typedef int BOOL;</code>
Dann gibt es die Makros TRUE
und FALSE
, deren Definitionen jeweils
<code class="cpp">#define TRUE 1 #define FALSE 0</code>
C Ich habe auch ein Makro NULL
und die Definition ist
<code class="cpp">#define NULL 0</code>
und ich vermute, dass PHP true
als booleschen Typ 1 behandelt. Nur eine Vermutung, Sie können gerne Einspruch erheben, wenn ich falsch liege.