数据类型转换,检测变量,检测数据几种方式

本文介绍了PHP中自动与强制数据类型转换的方法,包括使用intval、floatval等函数及settype函数实现不同类型间的转换,并提供了变量类型检测的实用示例。

自动数据类型转换

<?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中可以使用intvalfloatvalstrval,函数来获取具体需要类型值,然后进行强制数据类型转换
  也可以使用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>";
            }
            
            
?>

 

转载于:https://www.cnblogs.com/maxche/p/6665508.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值