PHP运算符一网打尽

2019-04-22  本文已影响0人  铁匠简记

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;
上一篇下一篇

猜你喜欢

热点阅读