ホームページ  >  記事  >  バックエンド開発  >  PHP には、値が整数 1 である事前定義定数 true があります。これを理解するにはどうすればよいでしょうか?

PHP には、値が整数 1 である事前定義定数 true があります。これを理解するにはどうすればよいでしょうか?

WBOY
WBOYオリジナル
2016-10-10 11:56:262018ブラウズ

get_define_constants() を実行したときに、PHP に名前が true で値が 1 の内部定数があることを偶然発見しました。 false と null という名前の定数もあります。
PHP は true を定数として扱いますか?それは「価値観」ではないでしょうか?
データ型がブール値であるべきではないでしょうか?
echo(true)を実行しようとすると、ブラウザは文字1を出力し、var_dump(true)を実行するとbool(true)が出力されます。これは明らかな矛盾ではありませんか?
また、true===1 は true ではありません。 true==1が成立します。
それで、phpがtrue false nullをどのように処理するかを知りたいです。

返信内容:

get_define_constants() を実行したときに、PHP に名前が true で値が 1 の内部定数があることを偶然発見しました。 false と null という名前の定数もあります。
PHP は true を定数として扱いますか?それは「価値観」ではないでしょうか?
データ型がブール値であるべきではないでしょうか?
echo(true)を実行しようとすると、ブラウザは文字1を出力し、var_dump(true)を実行するとbool(true)が出力されます。これは明らかな矛盾ではありませんか?
また、true===1 は true ではありません。 true==1が成立します。
それで、phpがtrue false nullをどのように処理するかを知りたいです。

echo 入力は文字列なので、true は型変換されます。こちらを参照してください

リーリー

参考ドキュメント

曲がった建物。 C++ のストーリーを語ります。
Windows API には、同様に定義されたデータ型 BOOL があります

リーリー

次に TRUEFALSE マクロがあり、定義は

です リーリー

C++自体にもマクロNULLがあり、定義は

です リーリー

そして、PHP は true をブール型 1 として扱うのではないかと思います。単なる推測です。私が間違っている場合は、遠慮なく反論してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。