雖然這一特點使用PHP編程非常容易,但它也存在一個重要的缺陷:當你需要測試一個變數的類型時,處理類型比較鬆散的語言就讓人有些迷惑。幸運地是,PHP的開發人員注意到這一情況,因此在其中包含了一個函數工具包,特別用它來測試變數並查明它們屬於哪個特定的字元類別——也就是說,它們是否包含字串、整數、對象或布爾值。
下面列出了這一類別中較為有用的函數,並提供說明與應用執行個體。
empty($var)
這個函數用來檢查變數是否為空白(沒有值或零值)。用此函數來檢查使用者輸入,例如,表格變數。保證它們包含有效資料。
複製代碼 代碼如下:
<?php
// returns false
$var = "hello";
echo empty($var) ? "true" : "false";
// returns true
$var = 0000;
echo empty ($var) ? "true" : "false";
?>
gettype($var)
這個函數返回變數的類型。例如,"字串"、"整數"、"布爾值"、"浮點值"等。在把變數插入嚴格類型的資料庫域前,一般用此函數來驗證變數是否為你期待的類型。
複製代碼 代碼如下:
<?php
// returns string
$var = "hello";
echo gettype($var);
//returns double
$var = 1000.56;
echo gettype($var);
?>
is_bool($var)
這個函數測試一個變數看它是否包含一個布爾值(真/假)。用此函數檢查變數是否為布爾變數。
複製代碼 代碼如下:
<?php
// returns true
$var = false;
echo is_bool($var) ? "true" : "false";
?>
is_string($var)
這個函數測試一個變數是否為字串變數。用此函數檢查一個變數是否包含字串資料。
複製代碼 代碼如下:
<?php
// returns true
$var = "exception";
echo is_string($var) ? "true" : "false";
// returns true
$var = "88408";
echo is_string($var) ? "true" : "false";
?>
is_numeric($var)
這個函數測試一個變數看它是否包含一個數字或數字字串(字串包括一個符號、數字與小數點)。在將變數用於計算前,用此函數來驗證它是否包含一個數字。
複製代碼 代碼如下:
<?php
// returns true
$var = "+99.766";
echo is_numeric($var) ? "true" : "false";
// returns false
$var = "b00";
echo is_numeric($var) ? "true" : "false";
?>
is_array($var)
這個函數測試一個變數看它是一個PHP相關或是數字順序索引數組。在迴圈中進行處理前,用此函數來檢查變數是否為一個數組。
複製代碼 代碼如下:
<?php
// returns true
$var = array("tiger", "lion", "zebra");
echo is_array($var) ? "true" : "false";
// returns false
$var = "zebra";
echo is_array($var) ? "true" : "false";
?>
is_null($var)
這個函數測試一個變數看它是否為NULL。在評估由SQL查詢返回的資料時,用此函數來檢查一個變數是否為NULL。
複製代碼 代碼如下:
<?php
// returns false
$var = "aa";
echo is_null($var) ? "true" : "false";
// returns true
$var = null;
echo is_null($var) ? "true" : "false";
?>
is_object($var)
這個函數測試一個變數看它是否為一個PHP對象。在調用一個方法或訪問屬性前,一般用此函數來測試變數是否為PHP對象。
複製代碼 代碼如下:
<?php
// returns false
$var = "exception";
echo is_object($var) ? "true" : "false";
// returns true
$var = new Exception;
echo is_object($var) ? "true" : "false";
?>
isset($var)
這個函數測試一個變數看它是否已被定義。在評估表格提交的結果時,一般用此函數來測試一個變數是否被定義。
複製代碼 代碼如下:
<?php
// returns true
$var = "yes";
echo isset($var) ? "true" : "false";
// returns false
echo isset($test) ? "true" : "false";
?>
print_r($var)
這個函數列印一個變數的內容。用此函數來"窺探"一個變數,特別是在調試一個指令碼時。
複製代碼 代碼如下:
<?php
$var = array("one", "two", array("red", "green"), new Exception, 467);
print_r($var);
?>