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


Posted in PHP onJune 15, 2008

算术运算符
  运算符      名称    结果            
  $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应用程序来获取Web服务器的状态信息
Oct 09 PHP
最小化数据传输――在客户端存储数据
Oct 09 PHP
php fsockopen中多线程问题的解决办法[翻译]
Nov 09 PHP
PHP中使用数组实现堆栈数据结构的代码
Feb 05 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
Jul 02 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
Jun 23 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
Jun 20 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
php的instanceof和判断闭包Closure操作示例
Jan 26 PHP
坏狼php学习 计数器实例代码
Jun 15 #PHP
坏狼的PHP学习教程之第2天
Jun 15 #PHP
坏狼的PHP学习教程之第1天
Jun 15 #PHP
Php注入点构造代码
Jun 14 #PHP
介绍php设计模式中的工厂模式
Jun 12 #PHP
php mysql索引问题
Jun 07 #PHP
PHP中MD5函数使用实例代码
Jun 07 #PHP
You might like
php zip文件解压类代码
2009/12/02 PHP
简单的PHP多图上传小程序代码
2011/07/17 PHP
fgetcvs在linux的问题
2012/01/15 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
html读出文本文件内容
2007/01/22 Javascript
JavaScript 事件对象的实现
2009/07/13 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
vue底部加载更多的实例代码
2018/06/29 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
五分钟学会HTML5的WebSocket协议
2019/11/22 HTML / CSS
酒店服务实习自我鉴定
2013/09/22 职场文书
厂长助理岗位职责
2013/12/27 职场文书
大学生党课思想汇报
2013/12/29 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
城建学院毕业生自荐信
2014/01/31 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
检察院起诉意见书
2015/05/20 职场文书
创业计划书之家教中心
2019/09/25 职场文书