Heim >Backend-Entwicklung >PHP-Tutorial >PHP hat eine vordefinierte Konstante true, deren Wert die Ganzzahl 1 ist. Wie ist das zu verstehen?

PHP hat eine vordefinierte Konstante true, deren Wert die Ganzzahl 1 ist. Wie ist das zu verstehen?

WBOY
WBOYOriginal
2016-10-10 11:56:262044Durchsuche

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.

Antwortinhalt:

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

definiert ist
<code class="cpp">typedef int BOOL;</code>

Dann gibt es die Makros TRUE und FALSE, deren Definitionen jeweils

lauten
<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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn