zl程序教程

您现在的位置是:首页 >  后端

当前栏目

有关php运算符的知识大全

PHP 知识 大全 运算符 有关
2023-06-13 09:14:31 时间
看似简单的东西,在实际运用中,还是很有意思的

算术运算符
运算符名称结果
$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