php 判断数据类型 自动/强制 类型转换

在这里插入图片描述

使用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 是否为函数

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
//布尔变整型参与运算
$num = true;
$result = $num + 10;
//$result 结果为整型的11,因为$fo 被强制转换为 1 来进行运算了
//如果$fo的值为0
var_dump($result);
//空字符串、空数组、null  都为false


//字符串类型
$str = '249字符串';
$result = $str + 1;
//结果为250。因为将$str变为了整型的249来进行运算,不过必须是第一位,放在其他位置上就没有用了。
var_dump($result);

//强调下,虽然这么做,目前执行出来的结果没有什么问题,但是如果在项目中很有可能给后期留下很大隐患,
尽量用同类型的来进行各种运算比较好!!!
?>

在这里插入图片描述

强制类型转换有三种方式:

1、 intval()、floatval()、strval()

	<?php
	    $float = 1.23;
	    $result = intval($float);
	    //看看结果是不是变了?
	    var_dump($result);
	    //整型的5
	    $yabozi = 5;
	    $re = floatval($yabozi);
	    var_dump($re);
	    //定义整型的变量
	    $yabozi = 23;
	    $bian = strval($yabozi);
	    //强制变成字符串试试
	    var_dump($bian);
	?>

2、变量前加上()里面写上类型,将它转换后赋值给其他变量


	<?php
	   //定义一个变量,我们来变化一下试试
	   $transfer = 12.8;
	   //把浮点变为整型
	    $jieguo = (int)$transfer;
	    var_dump($jieguo);
	   //把浮点变为布尔
	   $jieguo = (bool) $transfer;
	   var_dump($jieguo);
	   //把布尔变整型
	   $bool = true;
	   $jieguo = (int)$bool;
	   var_dump($jieguo);
	    //把浮点变数组
	   $fo = 250;
	   $jieguo = (array)$fo;
	   var_dump($jieguo);
	   //其他的操作方式,按照文字总结的规律你来试试
	?>

3、settype(变量,类型) 直接改变量本身

	<?php
	    //定义浮点变为整型
	    $fo = 250.18;
	   //settype第二个参数是int,你实验的时候要记得第二个参数要为字符串类型
	    settype($fo,'int');
	    //输出看看结果
	    var_dump($fo);
	?>

猜你喜欢

转载自blog.csdn.net/freedomVenly/article/details/83176618