變量是PHP的核心,我們?cè)诓僮髯兞壳?,都需要先弄清該變量屬于什么類型。那么在PHP中要如何檢測(cè)變量類型?下面這篇文章就來(lái)給大家介紹一下PHP檢測(cè)變量類型的幾種函數(shù)。
PHP中提供了許多檢測(cè)數(shù)據(jù)類型的函數(shù),但大致可以分為兩種:gettype()函數(shù)和is_*
類函數(shù)。下面我們通過(guò)代碼示例來(lái)了解一下。
我們先來(lái)看看下面一個(gè)例子:
<?php echo gettype(102) ."<br>"; echo gettype(true) ."<br>"; echo gettype(' ') ."<br>"; echo gettype(null) ."<br>"; echo gettype(array()) ."<br>"; echo gettype(new stdclass()); ?>
看看輸出結(jié)果:
gettype()函數(shù)可以獲取并返回變量的類型,返回值可以為:
-
boolean
-
integer
-
double
(從 PHP 4 起,如果是 float 就返回“double”,而不是“float”了) -
string
-
array
-
object
-
resource
(資源)resource是一種特殊的變量類型,保存了到外部資源的一個(gè)引用;它主要描述一個(gè) PHP 的擴(kuò)展資源。resource(資源)是通過(guò)專門的函數(shù)來(lái)建立和使用的。
-
NULL
NULL 也是一種特殊的數(shù)據(jù)類型,它只有一個(gè)值,即 NULL,表示空值(即變量沒(méi)有值)。
-
unknown type
gettype()函數(shù)由于包含了字符串的比較,因此運(yùn)行是較慢的。除了這個(gè)函數(shù)外,我們還可以使用is_*
系列函數(shù)來(lái)檢測(cè)變量的類型。
我們來(lái)看看下面一個(gè)例子:
<?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 是數(shù)組'; echo '<br>'; if (!is_array($num1)) echo '$num1 不是數(shù)組'; echo '<br>'; if (is_numeric($str2)) echo '$str2 是數(shù)字'; echo '<br>'; if (is_bool($bool)) echo '$bool 是數(shù)字'; echo '<br>'; if (is_float($float)) echo '$float 是浮點(diǎn)類型'; echo '<br>'; if (!is_float($str2)) echo '$str2 不是浮點(diǎn)類型'; echo '<br>'; if (is_int($num1)) echo '$num1 是整數(shù)類型'; echo '<br>'; if (!is_int($float)) echo '$float 不是整數(shù)類型'; echo '<br>'; if (is_string($str2)) echo '$str2 是字符串'; echo '<br>'; if (is_object($obj)) echo '$obj 是一個(gè)對(duì)象'; echo '<br>'; if (!isset($str1)) echo '$str1 未定義或則值為 NULL'; ?>
看看輸出結(jié)果:
is_* 系列中多個(gè)作用不同的函數(shù),可以利用這些函數(shù)來(lái)分別檢查變量的數(shù)據(jù)類型。下面我們來(lái)看看常用的幾個(gè)檢查函數(shù):
1、is_int():檢測(cè)變量$var
是否為整數(shù)類型(integer),如果$var
是則返回TRUE,否則返回 FALSE;語(yǔ)法“is_int($var)
”,別名為is_integer()。
2、is_float():檢測(cè)變量$var
是否為浮點(diǎn)型,如果$var
是則返回TRUE,否則返回 FALSE;語(yǔ)法“is_float($var)
”,別名為is_real()。
3、is_string():檢測(cè)變量$var
是否為字符串型,如果$var
是則返回TRUE,否則返回 FALSE;語(yǔ)法“is_string($var)
”。
4、is_array():檢測(cè)變量$var
是否為數(shù)組,如果$var
是則返回TRUE,否則返回 FALSE;語(yǔ)法“is_array($var)
”。
5、is_object():檢測(cè)變量$var
是否是一個(gè)對(duì)象,如果$var
是則返回TRUE,否則返回 FALSE;語(yǔ)法“is_object($var)
”。
6、is_numeric():檢測(cè)變量$var
是否為數(shù)字或者數(shù)字字符串,如果$var
是則返回TRUE,否則返回 FALSE;語(yǔ)法“is_numeric($var)
”。
好了就說(shuō)到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦?!?→php視頻教程
最后給大家推薦一個(gè)PHP數(shù)組的免費(fèi)視頻教程:PHP函數(shù)之a(chǎn)rray數(shù)組函數(shù)視頻講解,快來(lái)學(xué)習(xí)吧!