自动数据类型转换
<?php $foo ="100.age"; //声明一个fo字符串 $foo = $foo + 2; //现在foo是一个整型,值为102 $foo = $foo +1.3; //现在foo是一个浮点型,值为103.3 $foo = null +"19DATE100"; //现在是一个整型,值为19 $foo = 5+"15.92 yuan"; //现在是一个浮点型,值为20.92 ?>
强制类型转换
在PHP中可以使用intval,floatval,strval,函数来获取具体需要类型值,然后进行强制数据类型转换
也可以使用settype函数进行数据类型的转换
<?php $foo ="1010.9age"; //声明一个string 类型 $int = intval($foo); //使用intval方法获取foo中的整数,值为1010 $fol = floatval($foo); //使用floatval方法获取foo中的浮点数,值为1010.9 $str =strval($foo); //使用strval方法获取foo中的字符串,值为1010.9age $bar = true; // boolean $age = "29.1age"; // string settype ($age,"float"); //age 现在是 (float) 29.1 settype($bar,"string"); //bar 现在是 (string) "1" settype($age,"integer"); //age 现在是 (integer) 29 settype($age,"boolean"); //age 现在是 (bool) true 1 var_dump($age); ?>
<?php $num = "918414r"; $num = (integer)$num; //转换成int echo var_dump($num)."<p>"; $num = (float)$num; //转换成float echo var_dump($num)."<p>"; $num = (string)$num; //转换成string echo var_dump($num)."<p>"; $num = (boolean)$num; //转换成bool echo var_dump($num)."<p>"; $num = (array)$num; //转换成array echo var_dump($num)."<p>"; $num = (object)$num; //转换成object echo var_dump($num)."<p>"; ?>
检测变量是否指定数据类型
如果为真返回1,如果为假返回空。
is_bool(布尔) | 检查变量是否为bool | $res=is_bool(true); |
is_string(字符串) | 检查变量是否为string | |
is_integer(整型) | 检查变量是否为intege | |
is_folat(浮点型) | 检查变量是否为folat | |
is_array(数组) | 检查变量是否为array | |
is_object(对象) | 检查变量是否为objec | |
is_null(空) | 检查变量是否为null | |
is_numeric | 检查变量是否为numeric | 判读是否任何数字或者任何数字字符串 |
is_resource | 检测是否是一个资源类型 | |
is_callable | 检查是否是一个有效的函数名 | |
is_scalar | 判读是否是标量 | 也就是整数,浮点数,布尔型,或者字符串,而不是object,resource,array数据类型 |
<?php function test(){} $age ="1811大大"; if(is_array($age)){ echo "这是一个数组Array"; echo "<p>"; } if(is_integer($age)){ echo "这是一个整数型integer"; echo "<p>"; } if(is_double($age)){ echo "这是一个浮点型 folat.double"; echo "<p>"; } if(is_string($age)){ echo "这是一个字符串 string"; echo "<p>"; } if(is_bool($age)){ echo "这是一个布尔 boolean"; echo "<p>"; } if(is_null($age)){ echo "这是一个为空的变量 NULL"; echo "<p>"; } if(is_object($age)){ echo "这是一个对象 object"; echo "<p>"; } if(is_numeric($age)){ echo "这是一个数值型 numeric"; //判断是否是任何类型的数字或数字字符串。 echo "<p>"; } if(is_resource($age)){ echo "这是一个资源类型 resource"; //判断是否是资源类型 echo "<p>"; } if(is_scalar($age)){ echo "这是一个标量数据类型 scalar"; //也就是一个整数,浮点数,布尔型,或者字符串,而非objec array resource 数据类型 echo "<p>"; } if(is_callable(test)){ echo "这是一个有效的函数名"; echo "<p>"; } ?>
gettype(获取变量的数据类型)
<?php $num ="Hi"; echo gettype($num); //string ?>
var_dump(获取变量类型,变量的值,大小)
<?php $num ="Hi"; echo var_dump($num); //string(2) "Hi" ?>
isset(检测变量是否声明)
<?php $num = 10; //$num= null; //释放变量中的值 if(isset($num)){ //检测一个变量是否声明 如果变量不存在返回false echo "num变量是否声明"; echo "<p>"; } ?>
empty(检测变量值是否为空)
<?php $num = 10; //$num= null; //释放变量中的值 if(isset($num)){ //检测一个变量是否声明 如果变量不存在返回false echo "num变量是否声明"; echo "<p>"; } if(empty($num)){ //检测一个变量数值为 0,"",0.00,null 如果为空返回true echo "num变量值为空"; echo "<p>"; } ?>