變量是PHP的核心,我們在操作變量前,都需要先弄清該變量屬于什么類型。那么在PHP中要如何檢測變量類型?下面這篇文章就來給大家介紹一下PHP檢測變量類型的幾種函數。
PHP中提供了許多檢測數據類型的函數,但大致可以分為兩種:gettype()函數和is_*
類函數。下面我們通過代碼示例來了解一下。
我們先來看看下面一個例子:
<?php echo gettype(102) ."<br>"; echo gettype(true) ."<br>"; echo gettype(' ') ."<br>"; echo gettype(null) ."<br>"; echo gettype(array()) ."<br>"; echo gettype(new stdclass()); ?>
看看輸出結果:
gettype()函數可以獲取并返回變量的類型,返回值可以為:
-
boolean
-
integer
-
double
(從 PHP 4 起,如果是 float 就返回“double”,而不是“float”了) -
string
-
array
-
object
-
resource
(資源)resource是一種特殊的變量類型,保存了到外部資源的一個引用;它主要描述一個 PHP 的擴展資源。resource(資源)是通過專門的函數來建立和使用的。
-
NULL
NULL 也是一種特殊的數據類型,它只有一個值,即 NULL,表示空值(即變量沒有值)。
-
unknown type
gettype()函數由于包含了字符串的比較,因此運行是較慢的。除了這個函數外,我們還可以使用is_*
系列函數來檢測變量的類型。
我們來看看下面一個例子:
<?php header("Content-type:text/html;charset=utf-8"); $num1 = 123456; $arr = array(1, 2, 3, 4, 5, 6, 7); $bool = false; $str1 = NULL; $str2 = '654321'; $float = 3.1415926; $str3 = 'hello!'; class foo { function dosomething() { echo "你好!"; } } $obj = new foo(); if (is_array($arr)) echo '$arr 是數組'; echo '<br>'; if (!is_array($num1)) echo '$num1 不是數組'; echo '<br>'; if (is_numeric($str2)) echo '$str2 是數字'; echo '<br>'; if (is_bool($bool)) echo '$bool 是數字'; echo '<br>'; if (is_float($float)) echo '$float 是浮點類型'; echo '<br>'; if (!is_float($str2)) echo '$str2 不是浮點類型'; echo '<br>'; if (is_int($num1)) echo '$num1 是整數類型'; echo '<br>'; if (!is_int($float)) echo '$float 不是整數類型'; echo '<br>'; if (is_string($str2)) echo '$str2 是字符串'; echo '<br>'; if (is_object($obj)) echo '$obj 是一個對象'; echo '<br>'; if (!isset($str1)) echo '$str1 未定義或則值為 NULL'; ?>
看看輸出結果:
is_* 系列中多個作用不同的函數,可以利用這些函數來分別檢查變量的數據類型。下面我們來看看常用的幾個檢查函數:
1、is_int():檢測變量$var
是否為整數類型(integer),如果$var
是則返回TRUE,否則返回 FALSE;語法“is_int($var)
”,別名為is_integer()。
2、is_float():檢測變量$var
是否為浮點型,如果$var
是則返回TRUE,否則返回 FALSE;語法“is_float($var)
”,別名為is_real()。
3、is_string():檢測變量$var
是否為字符串型,如果$var
是則返回TRUE,否則返回 FALSE;語法“is_string($var)
”。
4、is_array():檢測變量$var
是否為數組,如果$var
是則返回TRUE,否則返回 FALSE;語法“is_array($var)
”。
5、is_object():檢測變量$var
是否是一個對象,如果$var
是則返回TRUE,否則返回 FALSE;語法“is_object($var)
”。
6、is_numeric():檢測變量$var
是否為數字或者數字字符串,如果$var
是則返回TRUE,否則返回 FALSE;語法“is_numeric($var)
”。
好了就說到這里了,有其他想知道的,可以點擊這個哦。→ →php視頻教程
最后給大家推薦一個PHP數組的免費視頻教程:PHP函數之array數組函數視頻講解,快來學習吧!