ホームページ >バックエンド開発 >PHPチュートリアル >PHP ブールデータ型とプロセス制御データ型の変換
PHP Boolean データ型とプロセス制御データ型の変換
Boolean は最も単純なデータ型です。 TRUE または FALSE を指定できます。キーワードは大文字と小文字が区別されません。
値を明示的にブール値に変換するには、(bool) または (boolean) を使用して変換を強制します。 PHP は多くの場合、特にフロー制御ステートメントの条件式を計算する場合に自動型変換を実行します。
ブール値に変換すると、次の値は false とみなされます:
1) ブール値 false;
2) 整数値 0 (ゼロ)
3) 浮動小数点値 0.0 (ゼロ);
4) 空白文字列と文字列 "0";
5) メンバー変数のない配列
6) ユニットのないオブジェクト (PHP4 のみ);
7) 特殊な型 NULL (設定されていない変数を含む)。
これ以外の他の値はすべて true とみなされます (リソースを含む)。
次のプログラム例でテストできます:
開発プロセス中、条件を判断するときは、ブール値型のデフォルト変換に隠れた危険性に必ず注意してください。
次の質問はこの側面に関するものです:
<?php var_dump((bool) ""); //bool(false) var_dump((bool) 1); //bool(true) var_dump((bool) -2); //bool(true) var_dump((bool) "foo"); //bool(true) var_dump((bool) 2.3e6); //bool(true) var_dump((bool) array(10)); //bool(true) var_dump((bool) array()); //bool(false) var_dump((bool) "false"); //bool(true) ?>
<?php /*习题*/ /*1。写出下列代码的运行结果*/ if(5<4) echo "true"; else echo "false-1"."<br />"; if("0") echo "true"; else echo "false-2"."<br />"; if($i) echo "true"; else echo "false-3"."<br />"; if("false") echo "true"; else echo "false-4"."<br />"; if(false) echo "true"; else echo "false-5"."<br />"; if(0.0) echo "true"; else echo "false-6"."<br />"; if(php) echo "true"; else echo "false-7"."<br />"; if("") echo "true"; else echo "false-8"."<br />"; if(null) echo "true"; else echo "false-9"."<br />"; if(array(12)) echo "true"; else echo "false-10"."<br />"; if(array()) echo "true"; else echo "false-11"."<br />"; /* 输出结果: false-1 false-2 false-3 true false-5 false-6 true false-8 false-9 true false-11 分析:if语句当条件不满足(即条件表达式计算结果为false)都会返回假。php的if语句没有then,有elseif(同else if) 当转换为boolean时候,以下值被认为是false: 1)布尔值false; 2)整型值0(零); 3)浮点型值0.0(零); 4)空白字符串和字符串“0”; 5)没有成员变量的数组; 6)没有单元的对象(仅适用于PHP4); 7)特殊类型NULL(包括尚未设定的变量); */ ?>