数据类型转换,检测变量,检测数据几种方式
自动数据类型转换
<?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>";
}
?>


浙公网安备 33010602011771号