php資料類型之查看與判斷資料類型
我們知道了一個(gè)資料的類型,才能進(jìn)行下一步操作。後面的時(shí)候,大家可以學(xué)到更多的知識(shí)-自訂功能(函數(shù))。
我們來做一個(gè)場(chǎng)景模擬:(註:眼前不用會(huì)寫這個(gè)函數(shù),以後會(huì)教大家)
假設(shè),我們可以寫一個(gè)智能的功能(函數(shù)),它讓有一個(gè)功能,就是打開一個(gè)裝有學(xué)生成績(jī)的電子表格。這個(gè)函數(shù)非常先進(jìn)。
????1.只有一個(gè)人的時(shí)候,就會(huì)回到一個(gè)人的成績(jī),成績(jī)是整數(shù)或浮點(diǎn)型變數(shù)。
????2.有2或兩個(gè)以上人的時(shí)候,返回一個(gè)數(shù)組類型變量,數(shù)組中裝有多個(gè)人的成績(jī)
????3.如果沒有人的時(shí)候,則返回布爾值的變量,變數(shù)值為false
透過上面的一個(gè)場(chǎng)景模擬,我們知道了,一個(gè)函數(shù)(功能)有可能傳回不同的資料類型。因此,我們可以根據(jù)不同的類型來做不同的事情。
判斷資料型態(tài)很重要,我們需要嚴(yán)格掌握。
【默寫級(jí)知識(shí)點(diǎn)】顯示類型的函數(shù)、得到類型的函數(shù)、判斷類型的函數(shù)
查看資料型別
#????1.gettype(傳入一個(gè)變數(shù)) 能夠獲得變數(shù)的型別
????2.var_dump(傳入一個(gè)變數(shù)) 輸出變類型與值
<?php //聲明一個(gè)變量88.8,你可以自己多做幾次實(shí)驗(yàn)換成其他類型看看$type輸出是多少 $float = 88.8; $type = gettype($float); echo $type; ?>
<?php //多換幾個(gè)類型試試 $str = '你喜歡尊上還是喜歡殺仟陌?'; var_dump($str); ?>
判斷資料型別
我們使用is_* 系列函數(shù)。 is_types這一系列的函數(shù),來判斷某個(gè)東西是不是某個(gè)類型。如果是這個(gè)類型回傳真,不是這個(gè)類型回傳假。 is_int 是否為整數(shù)
is_bool 是否為布林
is_float 是否為浮點(diǎn)is_string 是否為字串
is_array 是否是陣列is_object 是否是物件
is_null 是否為空
<?php //is_* 系列函數(shù)有個(gè)特點(diǎn),就是如果是這個(gè)類型就返回的是真。不是這個(gè)數(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的值換成整型、浮點(diǎn)、布爾和字符串試試 $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_ 在前後面跟類型即可。 ######變數(shù):整數(shù)(int) 浮點(diǎn)(float)、布林(bool)、字串(string)######混合型別: 陣列(array)、物件(object)### ###特殊類型:空(null)、 資源(resouce)、回呼(callback)######為什麼最後的實(shí)驗(yàn)中echo執(zhí)行假區(qū)間呢? ###答:因?yàn)閑cho 不是函數(shù),是基本語法。大家眼前可以不用理解函數(shù)和基本文法的差別。了解和不了解在實(shí)際開發(fā)中沒有影響。知道有這個(gè)知識(shí)點(diǎn)就行。 ###