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

自动数据类型转换

复制代码
<?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>";
            }
            
            
?>
复制代码

 

posted @ 2019-05-20 20:38  天涯海角路  阅读(251)  评论(0)    收藏  举报