PHP学习 运算符与运算符优先级

时间:2021-05-26

算术运算符
运算符名称结果
$a+$b加法$a和$b的和
$a-$b减法$a和$b的差
$a*$b乘法$a和$b的积
$a/$b除法$a除以$b的商
$a%$b取模$a除以$b的余数
递增/递减运算符
运算符名称结果
++$a 前加  $a的值加一,然后进行操作
$a++后加  $a的值先进行操作,后加一
--$a  前减  $a的值减一,然后进行操作
$a--  后减  $a的值先进行操作,后减一
实例:
<?php
echo$a=5+”5th”;//输出:10
echo10%3;//输出:1
echo10+$a++;//输出:20
echo5---$a;//输出:-5
?>
比较运算符
运算符名称结果
$a==$b等于TRUE,如果$a等于$b
$a===$b全等TRUE,如果$a等于$b,并且它们的类型也相同
$a!=$b不等TRUE,如果$a不等于$b
$a<>$b不等TRUE,如果$a不等于$b
$a!==$b非全等TRUE,如果$a不等于$b,或者它们的类型不同
$a<$b小于TRUE,如果$a严格小于$b
$a>$b大于TRUE,如果$a严格$b
$a<=$b小于等于TRUE,如果$a小于或等于$b
$a>=$b大于等于TRUE,如果$a大于或等于$b
另外一个条件运算符是“?:”(或三元)运算符。

实例:
<?php
var_dump(0=="a");//输出:bool(true)
var_dump(0=="00");//输出:bool(true)
var_dump(0==="00");//输出:bool(false)
var_dump(0<>"abc");//输出:bool(false)
var_dump(0!=="01");//输出:bool(true)
$a=10;
$b=20;
$str=$a>$b?"true":"false";
echo$str;//输出:false
?>
逻辑运算符
运算符名称结果
$aand$b逻辑与TRUE,如果$a与$b都为TRUE。
$aor$b逻辑或TRUE,如果$a或$b任一为TRUE。
$axor$b异或TRUE,如果$a和$b不同时
!$a逻辑非TRUE,如果$a不为TRUE。
$a&&$b逻辑与TRUE,如果$a与$b都为TRUE。
$a||$b逻辑或TRUE,如果$a或$b任一为TRUE。

其中and与&&、or与||是同一逻辑运算符的两种写法。
逻辑与和逻辑或都是短路运算符。在遇到下列逻辑表达式时,PHP解释程序将不会计算右边的表达式:
<?php
$a=10;
if(false&&(++$a));
echo$a;//输出:10
$b=10;
if(trueor(++$b));
echo$b;//输出:10
?>
位运算符
位运算符允许对整型数中指定的位进行置位。如果左右参数都是字符串,则位运算符将操作字符的ASCII值。
表达式名称结果
$a&$b按位与将把$a和$b中都为1的位设为1。
$a|$b按位或将把$a或者$b中为1的位设为1。
$a^$b按位异或将把$a和$b中不同的位设为1。
~$a按位非将$a中为0的位设为1,反之亦然。
$a<<$b左移将$a中的位向左移动$b次(每一次移动都表示“乘以2”)。
$a>>$b右移将$a中的位向右移动$b次(每一次移动都表示“除以2”)。
其他运算符
字符串运算符
有两个字符串运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数后。
错误抑制操作符
在最常见的数据库连接与文件创建操作或出现除0等异常时,可以用@符号来抑制函数错误信息输出到浏览器端$a=@(5/0)
外部命令执行
使用``来运行外部系统命令,注意不是单引号,是ESC下面那个按键
<?php
$out=`dirc:`;
print_r($out);
?>//不建议使用
实例:
<?php
$a="hello";
$a.="world!";//等同于:$a=$a."world!";
echo$a;//输出:helloworld!
$m=3;
$m+=5;//等同于:$m=$m+5;
echo$m;//输出:8

$c=($b=4)+5;
echo$c;//输出:9
?>
运算符优先级
下表从低到高列出了运算符的优先级。
结合方向运算符
左,
左or
左xor
左and
右print
右=+=-=*=/=.=%=&=|=^=~=<<=>>=
左?:
左||
左&&
结合方向运算符
左|
左^
左&
无==!====!==
无<<=>>=
左<<>>
左+-.
左*/%
右!~++--(int)(float)(string)(array)(object)@
右[
无new

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章