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 '执行假区间'; } ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

高并发千万级数据库系统解决方案
  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载

我只是一条咸鱼哈

is_scalar是检测变量是否是一个标量 标量(四大类型): 整型 字符串 浮点型 布尔型

6年前    添加回复 4

手机用户1580047974

3-15判断数据类型有个单词错了,特殊类型里面的资源(resource)写成了(resouce)

4年前    添加回复 1

平凡的世界

变量 整形 int 浮点 float 布尔 bool 字符串 string 混合变量 数组 array 对象 object 特殊类型 null 空 reaouce 资源 回调 callback

6年前    添加回复 1

我只是一条咸鱼哈

is_callable是检验变量的内容是否作为函数来调用 而var_dump是个函数,所以为真

6年前    添加回复 1

fancy

换成echo,is_int试试,为什么echo执行假区间呢?不懂为什么。

6年前    添加回复 1

杨宏彦

echo 不是函数

杨宏彦 · 2019-01-10 10:56

雨露

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

6年前    添加回复 1

        

变量:整型(int) 浮点(float)布尔(bool)字符串(string) echo "<br/>"; 混合类型:数组(array) 对象(object) echo "<br/>"; 特殊类型:空(null)资源(resouce) 回调(callback)

6年前    添加回复 0

周三浪

变量:整型 int 浮点float 字符串string 布尔bool; 混合类型:数组 array 对象object; 特殊类型:空(null);资源(resource 回调 callback

6年前    添加回复 0

心意

布尔、整数、浮点数、字符串型的数据是属于标量的。

6年前    添加回复 0

//换成echo,is_int试试,为什么echo执行假区间呢? if(is_callable('var_dump')){ echo '执行真区间'; }else{ echo '执行假区间'; } 判断的是是否是函数,注释应该是 "//换成echo,is_callable试试,为什么echo执行假区间呢?"吧 把var_dump 换成 echo 执行假区间

6年前    添加回复 0

感觉看完记不住,得写一遍才有点映像 变量:整形int,浮点float,布尔bool,字符串string; 混合变量:数组array,对象object; 特殊类型:空Null,资源reaouce,回调callback

6年前    添加回复 0

♚大熊✨

scalar的定义你要知道 他是包含整数 浮点 布尔的,所以 $sca=ture 意味着$sca是布尔类型 也就表示他是scalar类型,所以执行真区间

6年前    添加回复 0

gettype和var_dump的疑问?

[最新 妞,给爷笑一个 的回答] 感谢解惑!

时间:6年前

请问gettype和var_dump区别

[最新 无聊的人 的回答]       浮点类型            ↓单精度  +  双精度     你用is_float($float)  也等于true。

时间:6年前

判断数组类型有什么用?

[最新 Peter_Zhu 的回答] 1、数组自身其实本无类型,数组类型其实是指数组内元素的类型;2、因为数组元素可以是任意类型,而许多操作表达式,依赖特定数据类型才可以完成,所以判断数组元素类型就显示非常有必要。

时间:6年前

课件暂不提供下载,工作人员正在整理中,后期请多关注该课程~