php數(shù)據(jù)類型之查看和判斷數(shù)據(jù)類型
我們知道了一個數(shù)據(jù)的類型,才能進(jìn)行下一步操作。后面的時候,大家可以學(xué)習(xí)到更多的知識——自定義功能(函數(shù))。
我們來做一個場景模擬:(注:眼前不用會寫這個函數(shù),以后會教大家)
假設(shè),我們可以寫一個智能的功能(函數(shù)),它讓有一個功能,就是打開一個裝有學(xué)生成績的電子表格。這個函數(shù)非常先進(jìn)。
1.只有一個人的時候,就返回一個人的成績,成績是整型或者浮點型變量。
2.有2個或兩個以上人的時候,返回一個數(shù)組類型變量,數(shù)組中裝有多個人的成績
3.如果沒有人的時候,則返回布爾值的變量,變量值為false
通過上面的一個場景模擬,我們知道了,一個函數(shù)(功能)有可能返回不同的數(shù)據(jù)類型。因此,我們可以根據(jù)不同的類型來做不同的事情。
判斷數(shù)據(jù)類型很重要,我們需要嚴(yán)格掌握。
【默寫級知識點】顯示類型的函數(shù)、得到類型的函數(shù)、判斷類型的函數(shù)
查看數(shù)據(jù)類型
1.gettype(傳入一個變量) 能夠獲得變量的類型
2.var_dump(傳入一個變量) 輸出變類型和值
<?php //聲明一個變量88.8,你可以自己多做幾次實驗換成其他類型看看$type輸出是多少 $float = 88.8; $type = gettype($float); echo $type; ?>
<?php //多換幾個類型試試 $str = '你喜歡尊上還是喜歡殺仟陌?'; var_dump($str); ?>
判斷數(shù)據(jù)類型
我們使用is_* 系列函數(shù)。 is_types這一系列的函數(shù),來進(jìn)行判斷某個東西是不是某個類型。如果是這個類型返回真,不是這個類型返回假。
is_int 是否為整型
is_bool 是否為布爾
is_float 是否是浮點
is_string 是否是字符串
is_array 是否是數(shù)組
is_object 是否是對象
is_null 是否為空
is_resource 是否為資源
is_scalar 是否為標(biāo)量
is_numeric 是否為數(shù)值類型
is_callable 是否為函數(shù)
<?php //is_* 系列函數(shù)有個特點,就是如果是這個類型就返回的是真。不是這個數(shù)據(jù)類型就返回的是假 //聲明類型為假 $fo = false; if(is_bool($fo)){ echo '執(zhí)行真區(qū)間'; }else{ echo '執(zhí)行假區(qū)間'; } //檢查未聲明的變量$p是否為空,為空就執(zhí)行真區(qū)間 if(is_null($p)){ echo '執(zhí)行真區(qū)間'; }else{ echo '執(zhí)行假區(qū)間'; } echo "<br/>"; //字符串類型的數(shù)值,看看執(zhí)行的是真還是假 $str = '18.8'; if(is_numeric($str)){ echo '執(zhí)行真區(qū)間'; }else{ echo '執(zhí)行假區(qū)間'; } echo "<br/>"; //把sca的值換成整型、浮點、布爾和字符串試試 $sca = true; //如果為標(biāo)量,執(zhí)行真區(qū)間 if(is_scalar($sca)){ echo '執(zhí)行真區(qū)間'; }else{ echo '執(zhí)行假區(qū)間'; } echo "<br/>"; //換成echo,is_int試試,為什么echo執(zhí)行假區(qū)間呢? if(is_callable('var_dump')){ echo '執(zhí)行真區(qū)間'; }else{ echo '執(zhí)行假區(qū)間'; } ?>
注:is_types 很好記。is_ 在前后面跟類型即可。
變量:整型(int) 浮點(float)、布爾(bool)、字符串(string)
混合類型: 數(shù)組(array)、對象(object)
特殊類型:空(null)、 資源(resouce)、回調(diào)(callback)
為什么最后的實驗中echo執(zhí)行假區(qū)間呢?
答:因為echo 不是函數(shù),是基本語法。大家眼前可以不用理解函數(shù)和基本語法的區(qū)別。了解和不了解在實際開發(fā)中沒有影響。知道有這個知識點就行。