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

WBOY
Freigeben: 2016-10-10 11:56:26
Original
2018 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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

lauten
<code class="cpp">#define TRUE 1
#define FALSE 0</code>
Nach dem Login kopieren

C Ich habe auch ein Makro NULL und die Definition ist

<code class="cpp">#define NULL 0</code>
Nach dem Login kopieren

und ich vermute, dass PHP true als booleschen Typ 1 behandelt. Nur eine Vermutung, Sie können gerne Einspruch erheben, wenn ich falsch liege.

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage