zoukankan      html  css  js  c++  java
  • 3_PHP表达式_5_数据类型转换_类型强制转换

    以下为学习孔祥盛主编的《PHP编程基础与实例教程》(第二版)所做的笔记。

    PHP类型转换分为类型自动转换类型强制转换

    3.5.2 类型强制转换

      类型强制转换允许编程人员手动将变量的数据类型转换成指定的数据类型。PHP提供以下3种类型强制转换方法。

      

    方法1 在变量前面加一个小括号,并把目标数据类型填写在括号中。

    这些目标数据类型包括:int, bool, float, string, array, object等。

    程序:

     1 <?php
     2     $x = 11.2;
     3 
     4     $i = (int)$x;
     5     $f = (float)$x;
     6     $b = (bool)$x;
     7     $a = (array)$x;
     8     $o1 = (object)$x;
     9     $o2 = (object)NULL;
    10 
    11     var_dump($i);   //int 11
    12     echo "<br/>";
    13     var_dump($f);   //float 11.2
    14     echo "<br/>";
    15     var_dump($b);   //boolean true
    16     echo "<br/>";
    17     var_dump($a);   //array (size=1) 0 => float 11.2
    18     echo "<br/>";
    19     var_dump($o1);  //object(stdClass)[1]   public 'scalar' => float 11.2
    20     echo "<br/>";
    21     var_dump($o2);  //object(stdClass)[2]
    22     echo "<br/>";
    23 ?>

    输出:

     1 D:wampServerwwwApache服务器主目录practise例程.php:11:int 11
     2 
     3 D:wampServerwwwApache服务器主目录practise例程.php:13:float 11.2
     4 
     5 D:wampServerwwwApache服务器主目录practise例程.php:15:boolean true
     6 
     7 D:wampServerwwwApache服务器主目录practise例程.php:17:
     8 array (size=1)
     9   0 => float 11.2
    10 
    11 D:wampServerwwwApache服务器主目录practise例程.php:19:
    12 object(stdClass)[1]
    13   public 'scalar' => float 11.2
    14 
    15 D:wampServerwwwApache服务器主目录practise例程.php:21:
    16 object(stdClass)[2]

    说明:1.stdClass是一个既没有成员变量,又没有成员方法的PHP内置类,其作用是:标量数据类型的数据被类型转换为对象时,动态地向对象添加scalar成员变量,scalar成员变量的值来自标量数据类型的取值。2.NULL被类型转换为对象时,将产生一个空对象。

    方法2 使用以 val 结尾的函数名的函数

    诸如intval()、float()、strval()函数。

    程序:

     1 <?php
     2     $a = "123.9abc";
     3     $b = intval($a);
     4     $c = floatval($a);
     5     $d = strval($a);
     6     var_dump($b);   //int 123
     7     echo "<br/>";
     8     var_dump($c);   //float 123.9
     9     echo "<br/>";
    10     var_dump($d);   //string '123.9abc' (length=8)
    11     echo "<br/>";
    12 ?>

    输出:

    1 D:wampServerwwwApache服务器主目录practise例程.php:6:int 123
    2 
    3 D:wampServerwwwApache服务器主目录practise例程.php:8:float 123.9
    4 
    5 D:wampServerwwwApache服务器主目录practise例程.php:10:string '123.9abc' (length=8)

    方法3 使用settype()函数

    语法格式:bool settype(mixed var, string type)

    函数功能:设置var的数据类型为type数据类型,type的取值包括"bool'、“int”、“float”、"string"、"array"、"object"、”NULL“等字符串。函数如果执行成功则返回TRUE,否则返回FALSE.

    程序:

     1 <?php
     2     $a = "123.9abc";
     3     settype($a, "bool");
     4     var_dump($a);   //boolean true
     5     echo "<br/>";
     6 
     7     $b = "123.9abc";
     8     settype($b, "int");
     9     var_dump($b);   //int 123
    10     echo "<br/>";
    11 
    12     $c = "123.9abc";
    13     settype($c, "float");
    14     var_dump($c);   //float 123.9
    15     echo "<br/>";
    16 
    17     $d = "123.9abc";
    18     settype($d, "string");
    19     var_dump($d);   //string '123.9abc' (length=8)
    20     echo "<br/>";
    21 
    22     $e = "123.9abc";
    23     settype($e, "array");
    24     var_dump($e);   //array (size=1)    0 => string '123.9abc' (length=8)
    25     echo "<br/>";
    26 
    27     $f = "123.9abc";
    28     settype($f, "object");
    29     var_dump($f);   //object(stdClass)[1]   public 'scalar' => string '123.9abc' (length=8)
    30     echo "<br/>";
    31 
    32     $g = "123.9abc";
    33     settype($g, "NULL");
    34     var_dump($g);   //null
    35     echo "<br/>";
    36 ?>

    输出:

     1 D:wampServerwwwApache服务器主目录practise例程.php:4:boolean true
     2 
     3 D:wampServerwwwApache服务器主目录practise例程.php:9:int 123
     4 
     5 D:wampServerwwwApache服务器主目录practise例程.php:14:float 123.9
     6 
     7 D:wampServerwwwApache服务器主目录practise例程.php:19:string '123.9abc' (length=8)
     8 
     9 D:wampServerwwwApache服务器主目录practise例程.php:24:
    10 array (size=1)
    11   0 => string '123.9abc' (length=8)
    12 
    13 D:wampServerwwwApache服务器主目录practise例程.php:29:
    14 object(stdClass)[1]
    15   public 'scalar' => string '123.9abc' (length=8)
    16 
    17 D:wampServerwwwApache服务器主目录practise例程.php:34:null
  • 相关阅读:
    Bootstrap标签(label)的使用
    Docker学习(二)
    linux 的tee命令
    解决 Docker pull 出现的net/http: TLS handshake timeout 的一个办法
    win 10 安装.msi 程序出现the error code is 2503
    Kbuntu16.04利用快捷键调用终端Konsole
    ubuntu上swift开发学习2
    ubuntu上swift开发学习1
    Linux中常用文件传输命令及使用方法
    Kbuntu16.04添加工作空间
  • 原文地址:https://www.cnblogs.com/xiaoxuStudy/p/11801368.html
Copyright © 2011-2022 走看看