php 的数据强制类型转换和默认类型转换

php 的数据强制类型转换和默认类型转换
有几个月开发经验的朋友,都知道php属于弱类型语言,即不会强制开发者使用数据时指定其数据类型。
下面个人总结一下,php对数据类型的处理方式。

一。先说强制类型转换(也可理解成手动类型转换或指定数据类型):

       PHP强制数据类型转换有三种转换方式:

       1.用强制类型关健字
        •(int)、(integer):转换成整形
        •(float)、(double)、(real):转换成浮点型
        •(string):转换成字符串
        •(bool)、(boolean):转换成布尔类型
        •(array):转换成数组
        •(object):转换成对象
        •(binary):字节码
        
        示例:
        |$num1=3.14;   
        |$num2=(int)$num1;   
        |var_dump($num1); //输出float(3.14)   
        |var_dump($num2); //输出int(3)    

       2.类型转换函数
        intval()、floatval()、strval() 、settype(mixed var,string type)
        示例:
        |$str="123.9abc";   
        |$int=intval($str);     //转换后数值:123   
        |$float=floatval($str); //转换后数值:123.9   
        |$str=strval($float);   //转换后字符串:"123.9"
        |$num4=12.8;   
        |$flg=settype($num4,"int");   
        |var_dump($flg);  //输出bool(true)   
        |var_dump($num4); //输出int(12)

二。再说默认类型转换,规则:
    +号,自动按数字运算。
    .号,自动按字符串运算.
        示例:
        |$i=1;
        |$a=$i.'a'; //结果1a
        |$c=$i+'a';//结果1
        |0==“abc"; //结果是true , 因为"abc”按转成数字参加比对

    值的类型确定数据类型
        $foo = "0"; // $foo is a string (ASCII 48)
        $foo++; // $foo is the string "1" (ASCII 49)
        $foo += 1; // $foo is now an integer (2)
        $foo = $foo + 1.3; // $foo is now a double (3.3)
        $foo = 5 + "10 Little Piggies"; // $foo is a double (15),因为后面的“10。。。”转成数据类型是10
        $foo = 5 + "10 Small Pigs"; // $foo is an integer (15)
    int,float,doblue 之间就长运算。
        $foo = 1+1.34 ; // $foo 是float
    
    
三。类型相关的其它函数:
    gettype 获得变量类型
    settype 指定变量类型
    get_resource_type 获得资源类型

四。有绝对的必要了解一下运算符优先级
    最高优先级为一元运算符new , [ ] , ! , ~ , ++ , -- , 类型转换
        接下来是二元算术运算符* , / , % , + , - , 字符串连接符.
        再接下来是二元位运算符 << , >>
        再接下来是比较操作符符< , > , <= , >= , == , !=(<>) , === , !==
        再接下来是位运算符和逻辑运算符& , ^ , | , && , ||
        再接下来是三目运算符?:
    再接下来是函数调用
        再接下来是赋值操作符= , += , -= , *= , /= , .= , %= , &= , |= , ^= , ~= , <<= , >>=
        再接下来是and , xor , or,(这个我比较郁闷的,书的前面写了and和&&,or和||只是表达形式不一样,但是这里很明显优先级是不一样)
        最后是一个列表分隔符,


  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值