PHP與其他語言不同,因為它不是一種嚴格的類型語言。基本上,這意味著開發者在使用一個變量前,不必明確地設定這個變量的類型(數字、字符串、布爾值)。
相反,PHP解釋程序根據存儲在變量中的信息自動探測變量的類型雖然這一特點使用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);
?>
*