网站地图    收藏   

主页 > 专题教程 > php入门 >

1-15: php查看和判断数据类型

来源:自学PHP网    时间:2018-02-09 16:45 作者: 阅读:

[导读] PHP中文网教程为您提供《php入门教程之一周学会PHP》之 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网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论