有关php运算符的知识大全


Posted in PHP onNovember 03, 2011

看似简单的东西,在实际运用中,还是很有意思的

算术运算符
运算符 名称 结果
$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 
echo 10%3; //输出:1 
echo 10+ $a++; //输出:20 
echo 5- --$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 
?>

逻辑运算符
运算符 名称 结果
$a and $b 逻辑与 TRUE,如果 $a 与 $b 都为 TRUE。
$a or $b 逻辑或 TRUE,如果 $a 或 $b 任一为TRUE。
$a xor $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(true or (++$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=`dir c:`; 
print_r($out); 
?>//不建议使用

实例: 
<?php 
$a="hello"; 
$a.=" world! "; //等同于:$a=$a." world!"; 
echo $a; //输出:hello world! 
$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
PHP 相关文章推荐
[转帖]PHP世纪万年历
Dec 06 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
May 05 PHP
PHP类与对象中的private访问控制的疑问
Nov 01 PHP
PHP获取中英混合字符串长度的方法
Jun 07 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
学习PHP session的传递方式
Jun 15 PHP
PHP未登录自动跳转到登录页面
Dec 21 PHP
PHP反射机制原理与用法详解
Feb 15 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
Aug 03 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
Oct 15 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
Oct 15 PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 #PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
Nov 03 #PHP
PHP安全防范技巧分享
Nov 03 #PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 #PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
Nov 02 #PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 #PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
Nov 02 #PHP
You might like
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
解决php接收shell返回的结果中文乱码问题
2014/01/23 PHP
对PHP语言认识上需要避免的10大误区
2014/06/12 PHP
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
微信小程序 MINA文件结构
2016/10/17 Javascript
Ajax基础知识详解
2017/02/17 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
python批量替换多文件字符串问题详解
2018/04/22 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
Python字典遍历操作实例小结
2019/03/05 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
Python序列类型的打包和解包实例
2019/12/21 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
KOHLER科勒美国官网:国际著名卫浴橱柜领先品牌
2020/06/27 全球购物
网络工程专业毕业生推荐信
2013/10/28 职场文书
单位未婚证明范本
2014/01/18 职场文书
先进事迹报告会感言
2014/01/24 职场文书
服务标兵事迹材料
2014/05/04 职场文书
干部个人考察材料
2014/12/24 职场文书
工作试用期自我评价
2015/03/10 职场文书
java实现对Hadoop的操作
2021/07/01 Java/Android
Vue全局事件总线你了解吗
2022/02/24 Vue.js