- ゼロテスト
- ゼロテスト2
未定義か文字が入っていない、下でも大丈夫だと思う
if((!isset($var) && $var!==null) || $var===""){
if(!isset($var) || $var===''){//未定義,'',nullが該当
ブーリアン
0,false,nullは偽、"文字"は真
if($var){//"null","false"も該当
if(!$var){//"0",""も該当
文字
危険なのは文字でfalse,0,nullを入力した場合、"0","null","false"は文字
if($var===''){//''だけ、未定義までも偽に
if($var==''){//0,null,falseも該当
数字
if($var===0){//0だけ
if($var==0){//0,null,false,"0","null","false","true"も該当
未定義変数
以下全部真
if($nonset==0)
if($nonset!==0)
if($nonset!="0")
if($nonset!=="0")
if(!$nonset)
if($nonset=="")
if($nonset!=="")
if($nonset==null)
if($nonset===null)
if($nonset!="null")
if($nonset!=="null")
if($nonset==false)
if($nonset!==false)
if($nonset!="false")
if($nonset!=="false")
次の値はFALSEとみなさるから危険
booleanの FALSE
integerの 0
floatの 0.0
空の文字列、 および文字列の "0"
ゼロを要素とする配列
ゼロを要素とするオブジェクト
NULL
if( isset($var) ){
定義されていればTRUE、定義されていなければFALSE
NULLに設定されている変数を調べた場合はFALSEが入ってしまう
変数の値が 0 や空文字 "" の場合はTRUEを返します
if( empty($var) ){
変数が定義されていない場合にTRUEを返します。また、変数が定義されていても、値が0や空文字 ""やNULLの場合にもTRUE
"0"もTRUEが入ってしまう
isset, emptyに付け加えても空文字判定ができない、未定義変数でなくなる?
if((!isset($var) && $var!==null) || $var===""){
if(empty($var) && $var!==0 && $var!=="0" && $var!==null && $var!==false){
- Is this English???