強制類型轉換問題:數組
(array) false ====> array(0=>)函數
(array) true ====> array(0=>1)測試
(array) null ====>array( )對象
進行類型轉換的時候要注意文檔
1. null , 0 , false , array() , '' ,'0' 字符串
type: NULL (int) $var=0 intval($var) 0
type: integer (int) $var=0 intval($var) 0
type: boolean (int) $var=0 intval($var) 0
type: array (int) $var=0 intval($var) 0
type: string (int) $var=0 intval($var) 0
其餘類比較:
array(1,2) , 'hello12' , '12hello' ,'20120801017hello' , 0.99, 0.1
type: array (int) $var=1 intval($var) 1
type: string (int) $var=0 intval($var) 0
type: string (int) $var=12 intval($var) 12
type: string (int) $var=2147483647 intval($var) 2147483647 //邊界值
type: double (int) $var=0 intval($var) 0
type: double (int) $var=0 intval($var) 0
2. empty() , isset()
empty():
""、0、"0"、NULL、FALSE、array()、var $var; 以及沒有任何屬性的對象都將被認爲是空的
" " 非空,中間有空格
isset():
isset() 只能用於變量,由於傳遞任何其它參數都將形成解析錯誤。若想檢測常量是否已設置,可以使用defined函數。
若使用 isset() 測試一個被設置成 NULL 的變量,將返回 FALSEstring
當轉換爲 boolean 時,如下值被認爲是 FALSE:
布爾值 FALSE 自身
整型值 0 (零)
浮點型值 0.0 (零)
空 字符串, 以及 字符串 "0"
不包括任何元素的數組
不包括任何成員變量的對象(僅PHP 4.0 適用)
特殊類型 NULL (包括還沒有設定的變量)
從沒有任何標記(tags)的XML文檔生成的SimpleXML 對象變量