プロジェクトで奇妙な問題に遭遇しましたが、それを解決するのに多くの時間がかかりました。最終的にデバッグの結果、それは 0 と ' ' (空の一重引用符、スペースを追加しました) に関する判断の問題であることがわかりました。結果、0== が成り立つことが分かりました。落ち込んでいたので、簡単なページテストを書くことにしました。0、null、empty、empty、false の関係を明確にすることを心に誓いました。私たちが作成するプログラムや Web サイトにはバグがあり、特にログインなどの特別な場所のセキュリティと論理的な正確さに影響を与える可能性があります。専門家は、0、null、および empty の関係が非常に曖昧であるため、
php プログラム コードをテストする必要があります:
コードをコピーします。 コードは次のとおりです:
// ========= 0 と '' および空の null false start の関係を決定します ========= //
if('safdasefasefasf'==0){ echo "この文字 文字列は 0 に等しい数値に変換されます
";} //出力: 文字列はゼロに等しい数値
これは重要な例です
マニュアルでは次のように説明されています: 値は文字列の先頭によって決まります。 文字列が正当な数値データで始まる場合は、その数値を値として使用します。 0 (ゼロ)
つまり、'3asfdf'==3; 'adsfasdf'==0 はかなり必要です
$a=0;if($a==''){ echo "0 '' と等しい
";
} //output:0 は ''
if(trim( $a)=='') と等しい{
echo "trim(0) は次と等しい' '
";
} //出力なし
if($a===''){
echo "0 ===''
>";
} //いいえOutput
if(empty($a)){
echo "'' は空です
";
} //出力: '' は空です
if(is_null($a)){
echo "0 is null
gt;";
} //出力なし
if(is_numeric($a)){
echo "0 は数値です
";
} //出力:0 は数値です
if(is_string($a)){
echo "0 は文字列
";
} //出力なし
if( strval($a)==''){
echo "0 は文字列に変換されますstring is ''
";
} //出力なし
//========== 判定 0と''の関係と空null false end ====== ===//
//========== '' と 0 および空の null false start との関係を決定します ==== =====//
$b = '';
if($b==0){
echo "'' は 0
";
} //output:'' は 0 に等しい
if(!''){
echo "' ' は false
";
} //output:'' は false
if(!0){
echo "0 は false
> ;";
} //output:0 はfalse
//========== ''と0と空nullの関係を判定する false end =========//
echo " 空('')の判定には注意0 は '' と同等であり、0 と '' は両方とも空文字および false と同等です。 ===";
?>
を使用するのが最善です。 出力結果は次のようになります。 0 は " " と同等です。空の 0 は数値です。「0 は false です。0 は false です。空 (") を判断するときは注意してください。0 と " は両方とも空文字と同等であり、false です。」空を判断するときは === を使用するのが最善です。これは次の方法でのみ説明できます: 0 は " と同等であり、0 と " は両方とも空文字と false と同等です 空 (") を判断するときは注意してください。 " ,0 と " に相当するものは両方とも空文字と false に相当します。空であると判断する場合は === を使用するのが最善です。
http://www.bkjia.com/PHPjc/327751.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/327751.html技術記事プロジェクトで奇妙な問題に遭遇しましたが、それを解決するのに多くの時間がかかりました。最終的に、デバッグの結果、それは 0 と ' ' (空の一重引用符、見やすくするために追加しました) に関する判断の問題であることがわかりました。 ...