php面试题PHP经验分享PHP实战

4.字符串优先级

2017-12-22  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读