[ PHP ] – isset() 與 empty() 與 is_null 差異

isset() 與 empty() 與 is_null 這篇主要是比較這三個判斷函式他們之間的差異性;請看以下程式範例。

$check=array(true,null,12345,'12345abc','');
echo ' array(true,null,12345,\'12345abc\',\'\') <br>';
foreach($check as $value){
	echo '( '.gettype($value).' ) '.$value.' isset   ? : '.(isset($value)  ?'TRUE':'FALSE').'<br>';
	echo '( '.gettype($value).' ) '.$value.' empty   ? : '.(empty($value)  ?'TRUE':'FALSE').'<br>';
	echo '( '.gettype($value).' ) '.$value.' is_null ? : '.(is_null($value)?'TRUE':'FALSE').'<br>';
}
//PHP 有個特性 在使用 is_xxx 函式時,若直接echo 判斷結果 true 的話 會輸出 1 false 則是 空字串
//所以我們要在判斷式後面自行加上不同結果所要回傳的字串 'TRUE':'FALSE'
//gettype 函式為取得變數型態
//isset()   檢查變數是否有設置
//empty()   檢查變數是否為空值
//is_null() 檢查變數是否為null
//顯示結果
/*
array(true,null,12345,'12345abc','')
( boolean ) 1 isset ? : TRUE
( boolean ) 1 empty ? : FALSE
( boolean ) 1 is_null ? : FALSE
( NULL ) isset ? : FALSE
( NULL ) empty ? : TRUE
( NULL ) is_null ? : TRUE
( integer ) 12345 isset ? : TRUE
( integer ) 12345 empty ? : FALSE
( integer ) 12345 is_null ? : FALSE
( string ) 12345abc isset ? : TRUE
( string ) 12345abc empty ? : FALSE
( string ) 12345abc is_null ? : FALSE
( string ) isset ? : TRUE
( string ) empty ? : TRUE
( string ) is_null ? : FALSE
*/

!去下營經續永站本助幫能就下一點輕輕,話的您到助幫有章文的我果如 如果我的文章有幫助到您的話,輕輕點一下就能幫助本站永續經營下去!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。