• 类型转换的判别


    PHP在变量定义中不需要(或不支持)明确的类型定义;变量类型是根据使用该变量的上下文所决定的。也就是说,

    如果把一个字符串值赋给变量var,var就成了一个字符串。如果又把一个整数值赋给var,那它就成了一个整数。

    PHP的自动类型转换的一个例子是加号“+”.如果任何一个操作数是浮点数,结果也是浮点数。否则操作数会被浮点数,结果也是浮点数。

    否则操作数会被解释为整数,结果也是整数。注意这并没有改变这些操作数本身的类型;改变的仅是这些操作数如何被求值以及表达式

    本身的类型。

    <?php

      $foo="0";//$foo 是字符串(ASCII 48)

      $foo+=2;//$foo现在是一个整数(2)

      $foo=$foo+1.3;//$foo 现在是一个浮点数(3.3)

      $foo=5+"10 Little Piggies";//$foo 是整数(15)

      $foo=5+"10 Small Pigs";

    ?>

    如果上面两个例子看上去古怪的话,参见字符串转换为数值.

    如果要强制将一个变量当作某种类型来求值,参见类型强制转换一节.如果要改变一个变量的类型,参见settype().

    如果想要测试本节中任何例子的话,可以用var_dump()函数.

    Note:

      自动转换为数组的行为目前没有定义.

      Also,because PHP supports indexing into strings via offsets using the same syntax as array indexing,the following

    example holds true for all PHP versions:

    <?php

      $a='car';//$a is a string

      $a[0]='b';

      echo $a;

    ?>

    请参阅访问和修改字符串中的字符一节以获取更多信息.

    类型强制转换

      PHP中的类型强制转换和C中的非常像;在要转换的变量之前加上用括号括起来的目标类型.

    <?php

      $foo=10;

      $bar=(boolean) $foo;

    ?>

    d
    允许的强制转换有:

    .(int),(integer)-转换为整型(integer)

    .(bool),(boolean)-转换为布尔型(boolean)

    .(float),(double),(real)-转换为浮点型(float)

    .(string)-转换为字符串(string)

    .(binary)-转换为二进制字符串(string)(PHP 6)

    .(array)-转换为数组(array)

    .(object)-转换为对象(object)

    .(unset)-转换为NULL(PHP 5)

    (binary)转换会在结果前面加上前缀'b',PHP 5.2.1新增.

    注意在括号内允许有空格和制表符,所以下面有两个例子功能相同:

    <?php

      $foo=(int) $bar;

      $foo=(int) $bar;

    ?>

    将字符串(string)文字和变量转换为二进制字符串(string):

    <?php

      $binary=(binary)$string;

      $binary=b"binary string";

    ?>

    Note:

    可以将变量放置在双引号的方式来代替将变量转换为字符串(string)s:

    <?php

      $foo=10;

      $str="$foo";

      $fst=(string)$foo;

      //输出"they are the same"

      if($fst==$str){

        echo "they are the same";

    }

    ?>

    有时在类型之间强制转换时确切地会发生什么可能不是很明显.更多信息如下小节:

  • 相关阅读:
    老鸟的Python新手教程
    vs2010经常使用快捷键
    SQL基础--&gt; 约束(CONSTRAINT)
    哈哈,做题了
    【网络协议】TCP中的四大定时器
    JAVA反射机制
    JUnit入门
    怎样将程序猿写出来的程序打包成安装包(最简单的)
    事件传递机制总结
    理解class.forName()
  • 原文地址:https://www.cnblogs.com/vegas/p/5234625.html
Copyright © 2020-2023  润新知