牛骨文教育服务平台(让学习变的简单)

3.2.11 查看和判断数据类型

我们知道了一个数据的类型,才能进行下一步操作。后面的时候,大家可以学习到更多的知识——自定义功能(函数)。

我们来做一个场景模拟:(注:眼前不用会写这个函数,以后会教大家)

假设,我们可以写一个智能的功能(函数),它让有一个功能,就是打开一个装有学生成绩的电子表格。这个函数非常先进。

  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 "执行假区间";
}


//字符串类型的数值,看看执行的是真还是假
$str = "18.8";
if(is_numeric($str)){
     echo "执行真区间";
}else{
     echo "执行假区间";
}

?>


//把sca的值换成整型、浮点、布尔和字符串试试
$sca = true;
//如果为标量,执行真区间
if(is_scalar($sca)){
     echo "执行真区间";
}else{
     echo "执行假区间";
}

//换成echo,is_int试试,为什么echo执行假区间呢?
if(is_callable("var_dump")){
     echo "执行真区间";
}else{
     echo "执行假区间";
}




注:istypes 很好记。is 在前后面跟类型即可。

标量:整型(int) 浮点(float)、布尔(bool)、字符串(string)

混合类型: 数组(array)、对象(object)

特殊类型:空(null)、 资源(resouce)、回调(callback)

为什么最后的实验中echo执行假区间呢?
答:因为echo 不是函数,是基本语法。大家眼前可以不用理解函数和基本语法的区别。了解和不了解在实际开发中没有影响。知道有这个知识点就行。