php資料類型之查看與判斷資料類型

我們知道了一個資料的類型,才能進行下一步操作。後面的時候,大家可以學到更多的知識-自訂功能(函數)。

我們來做一個場景模擬:(註:眼前不用會寫這個函數,以後會教大家)

假設,我們可以寫一個智能的功能(函數),它讓有一個功能,就是打開一個裝有學生成績的電子表格。這個函數非常先進。

    1.只有一個人的時候,就會回到一個人的成績,成績是整數或浮點型變數。

    2.有2或兩個以上人的時候,返回一個數組類型變量,數組中裝有多個人的成績

    3.如果沒有人的時候,則返回布爾值的變量,變數值為false

透過上面的一個場景模擬,我們知道了,一個函數(功能)有可能傳回不同的資料類型。因此,我們可以根據不同的類型來做不同的事情。

判斷資料型態很重要,我們需要嚴格掌握。

【默寫級知識點】顯示類型的函數、得到類型的函數、判斷類型的函數

查看資料型別

#    1.gettype(傳入一個變數) 能夠獲得變數的型別

    2.var_dump(傳入一個變數) 輸出變類型與值

<?php
  //声明一个变量88.8,你可以自己多做几次实验换成其他类型看看$type输出是多少
  $float = 88.8;
  $type = gettype($float);

  echo $type;

?>
<?php

//多换几个类型试试
$str = '你喜欢尊上还是喜欢杀仟陌?';

var_dump($str);
?>











判斷資料型別


我們使用is_* 系列函數。 is_types這一系列的函數,來判斷某個東西是不是某個類型。如果是這個類型回傳真,不是這個類型回傳假。

is_int 是否為整數

is_bool 是否為布林

is_float 是否為浮點

is_string 是否為字串

is_array 是否是陣列

is_object 是否是物件
is_null 是否為空

is_resource 是否為資源###is_scalar 是否為標量###is_numeric 是否為數值類型###is_callable 是否為函數###
<?php
//is_* 系列函数有个特点,就是如果是这个类型就返回的是真。不是这个数据类型就返回的是假
//声明类型为假
$fo = false;

if(is_bool($fo)){
    echo '执行真区间';
}else{
    echo '执行假区间';
}


//检查未声明的变量$p是否为空,为空就执行真区间
if(is_null($p)){
    echo '执行真区间';
}else{
    echo '执行假区间';
}
echo "<br/>";

//字符串类型的数值,看看执行的是真还是假
$str = '18.8';
if(is_numeric($str)){
    echo '执行真区间';
}else{
    echo '执行假区间';
}
echo "<br/>";
//把sca的值换成整型、浮点、布尔和字符串试试
$sca = true;
//如果为标量,执行真区间
if(is_scalar($sca)){
    echo '执行真区间';
}else{
    echo '执行假区间';
}
echo "<br/>";
//换成echo,is_int试试,为什么echo执行假区间呢?
if(is_callable('var_dump')){
    echo '执行真区间';
}else{
    echo '执行假区间';
}

?>
######:is_types 很好記。 is_ 在前後面跟類型即可。 ######變數:整數(int) 浮點(float)、布林(bool)、字串(string)######混合型別: 陣列(array)、物件(object)### ###特殊類型:空(null)、 資源(resouce)、回呼(callback)######為什麼最後的實驗中echo執行假區間呢? ###答:因為echo 不是函數,是基本語法。大家眼前可以不用理解函數和基本文法的差別。了解和不了解在實際開發中沒有影響。知道有這個知識點就行。 ###
繼續學習
||
<?php //is_* 系列函数有个特点,就是如果是这个类型就返回的是真。不是这个数据类型就返回的是假 //声明类型为假 $fo = false; if(is_bool($fo)){ echo '执行真区间'; }else{ echo '执行假区间'; } //检查未声明的变量$p是否为空,为空就执行真区间 if(is_null($p)){ echo '执行真区间'; }else{ echo '执行假区间'; } echo "<br/>"; //字符串类型的数值,看看执行的是真还是假 $str = '18.8'; if(is_numeric($str)){ echo '执行真区间'; }else{ echo '执行假区间'; } echo "<br/>"; //把sca的值换成整型、浮点、布尔和字符串试试 $sca = true; //如果为标量,执行真区间 if(is_scalar($sca)){ echo '执行真区间'; }else{ echo '执行假区间'; } echo "<br/>"; //换成echo,is_int试试,为什么echo执行假区间呢? if(is_callable('var_dump')){ echo '执行真区间'; }else{ echo '执行假区间'; } ?>