foo()函数和@ foo()的区别是什么?
PHP支持一个错误运算符@,当将其放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
一、运算符优先级
递增/递减 > ! > 算数运算符 > 大小比较 > (不)相等比较 > 引用 > 位运算符(^) > 位运算符(|) > 逻辑与 > 逻辑或 > 三目 > 赋值 > and > xor > or
递增递减运算符
递增递减运算符不影响布尔值;
递减null值没有效果
递增null值为1;
递增递减在前就是先运算,后返回;在后就是先返回,后运算
二、逻辑运算符
短路作用
$a = true || $b ==3;
$a = false && $b == 1;
|| 和 && 与 or 和and 的优先级不同;
优先级:'&&' 〉 '||' 〉 '=' 〉 'and' 〉 'or'
如:
$a = false || true; //true
$a = false or true; // false
三、一网打尽
<?php
$a = 0;
$b = 0;
if($a = 3 > 0 || $b = 3 >0 )
{
$a++;
$b++;
echo $a."\n";
echo $b."\n";
}
运算符优先级顺序为:'>' > '||' > '='
第一步:3>0,
第二步:((3>0)||$b = 3>0) //短路运算,$a = true
第三步:
递增递减运算符不影响布尔值;$a++ = 1;
网友评论