1

PHP の文字列の真実性を理解しようとしています。Javascript や Python などの他のスクリプト言語に似ているのではないかと思いました。

> var_dump((bool)"");
bool(false);

> var_dump((bool)"hello");
bool(true);

わかりました。

それから私は試しました

> var_dump((bool)"0");
bool(false);

本当に?それは変だ。PHP は最初に文字列を数値として解析しようとしていると思います。したがって、これもfalse

> var_dump((bool)"00");
bool(true);

は?!?私は本当に混乱しており、文字列が真実かどうかを知りたいと思っています。

私はこれまで何も見つけることができませんでした。

4

2 に答える 2

2

boolean への変換については、ドキュメントを参照してください。

ブール値に変換する場合、次の値は FALSE と見なされます。

the boolean FALSE itself
the integer 0 (zero)
the float 0.0 (zero)
the empty string, and the string "0"
an array with zero elements
an object with zero member variables (PHP 4 only)
the special type NULL (including unset variables)
SimpleXML objects created from empty tags

他のすべての値は TRUE と見なされます (すべてのリソースを含む)。

于 2014-02-26T23:47:58.067 に答える
1

ブール値のphpドキュメントから

ブール値に変換する場合、次の値は FALSE と見なされます。

ブール値の FALSE 自体
整数 0 (ゼロ)
浮動小数点数 0.0 (ゼロ)
空の文字列と文字列 "0"
要素がゼロの配列
メンバー変数がゼロのオブジェクト (PHP 4 のみ)
特殊な型 NULL (未設定の変数を含む) )
空のタグから作成された SimpleXML オブジェクト

はい、あなたの例には意味があります。0ブール値のfalseで00あり、文字列であり、trueです

于 2014-02-26T23:48:17.110 に答える