PHPにおける0とnullの違い
デフォルトデータが0のフィールドをMySQLデータベースに格納する場合は分かりませんが、0とNullなのでプログラム内で0かNullかを判定するとエラーになります。 Null と 0 の値は同じですが、型は同じではありません。これは簡単な問題のようですが、判断が非常に困難です。簡単に言うと、== と === の違いです。最初の == は同じ値だけを必要としますが、=== は同じ値だけでなく同じ種類の値も必要とします。
Null は特殊なタイプで、次のコードの 2 つのタイプが Null です:
1. $var = NULL; $var;
3.0、「0」、属性なし空とみなされます。
下の例を見てください
<? $str1 = null; $str2 = 0; echo $str1==$str2 ? ‘相等’ : ‘不相等’; $str3 = ""; $str4 = 0; echo $str3==$str4 ? ‘相等’ : ‘不相等’; $str5 = 0; $str6 = '0'; echo $str5===$str6 ? ‘相等’ : ‘不相等’; $str7=0; $str= null ; echo $str7==$str8 ? ‘相等’ : ‘不相等’; ?>
実行結果
「等しい」「等しい」「等しくない」「等しい」
つまり、0とNullの値は等しいですが、それらの型は等しくありません。さて、PHP 0 と null の違いを簡単にまとめましょう。つまり、違いがよくわからない場合は、もう少し判断してください。