有关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设计聊天室步步通
Oct 09 PHP
在PWS上安装PHP4.0正式版
Oct 09 PHP
站长助手-网站web在线管理程序 v1.0 下载
May 12 PHP
Discuz Uchome ajaxpost小技巧
Jan 04 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
解析php如何将日志写进syslog
Jun 28 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
Jul 03 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
盘点PHP和ASP.NET的10大对比!
Dec 24 PHP
php session实现多级目录存放实现代码
Feb 03 PHP
ThinkPHP连接Oracle数据库
Apr 22 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 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
德生PL330测评
2021/03/02 无线电
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
php 文件上传实例代码
2012/04/19 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
js字符串转成JSON
2013/11/07 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
JS实现购物车特效
2017/02/02 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
python模块restful使用方法实例
2013/12/10 Python
使用Python生成url短链接的方法
2015/05/04 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
python利用递归方法实现求集合的幂集
2020/09/07 Python
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
vue路由实现登录拦截
2021/03/24 Vue.js
参观监狱心得体会
2014/01/02 职场文书
公司合作意向书范文
2014/07/30 职场文书
要账委托书范本
2014/09/15 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
支教个人总结
2015/03/04 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
Java Spring Lifecycle的使用
2022/05/06 Java/Android