4.字符串优先级

作者: 漏诺 | 来源:发表于2017-12-22 21:51 被阅读34次

    运算符

    Foo()与@foo()之间的区别

    @错误控制符

    当将其放在一个php表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

    延伸:php所有运算符考点

    运算符优先级

    递增/递减>!>算术运算符>大小比较>(不)相等比较>引用>位运算符 (^)>位运算符(|)>逻辑与>逻辑或>三目>赋值> and > xor > or

    括号的使用可以增加代码的可读性,推荐使用

    比较运算符

    ==和===的区别

    ==值进行比较

    ===值和类型进行比较

    等值判断(false的七种情况)

    整型0,浮点0,布尔false,空字符串,0字符串,空数组,NULL

    递增递减运算符

    递增递减运算不影响布尔值

    True++是true,true--是true

    False++是false,False--是false

    递减NULL值没有效果 ;Null--还是null

    递增NULL值为1;null++是1

    逻辑预算符

    短路作用

    $a=true || $b=3;前面是true,后面不执行

    $b=false && $a==1;前面是false,后面不执行;

    只要有一个false,整体为false

    &&  II  and  or优先级由高到低

    $a=false || true;

    由于||的优先级高于=,所以先执行false || true,结果为ture,$a为true

    $b=false or true;

    由于or的优先级最低,所以,先执行$b=false结果$b为false;

    $b=false or true;整体为true。

    false or true结果为true

    例题1:判断优先级。短路情况

    解析:

    [if !supportLists]1.[endif]$a=3; =是赋值,不是相等

    [if !supportLists]2.[endif]优先级顺序为>  ||  =

    If中的内容应该为

    ($a=(3>0 || $b=3>0))

    [if !supportLists]3.[endif]先执行3>0 || $b=3>0,因为有||运算符,3>0 || $b=3>0前面为true,后面不执行,所以$a为true;$b为0;

    [if !supportLists]4.[endif]然后执行$a++;也就是true++,为true ;    $b++;为0

    [if !supportLists]5.[endif]结果为$a=1;$b=1;

    例题2

    $a=true;

    $a++;

    echo $a;

    结果为1

    解析:

    布尔值:true++为true,布尔值的true为1

    例题3:

    $a=true;

    $b=$a+1;

    var_dump($b);

    结果int(2)

    例题4:

    $a=true;

    echo $a++;结果为1

    echo $a;结果为1

    相关文章

      网友评论

        本文标题:4.字符串优先级

        本文链接:https://www.haomeiwen.com/subject/puaxgxtx.html