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 相关文章推荐
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
Apr 25 PHP
PHP 多进程 解决难题
Jun 22 PHP
PHP 柱状图实现代码
Dec 04 PHP
php获取后台Job管理的实现代码
Jun 10 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
PHP实现AES256加密算法实例
Sep 22 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
PHP Static延迟静态绑定用法分析
Mar 16 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
深入研究PHP中的preg_replace和代码执行
Aug 15 PHP
Yaf框架封装的MySQL数据库操作示例
Mar 06 PHP
关于laravel 日志写入失败问题汇总
Oct 17 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日历程序
2006/12/06 PHP
php 定义404页面的实现代码
2012/11/19 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
在Django的视图(View)外使用Session的方法
2015/07/23 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
经典c++面试题四
2015/05/14 面试题
高等教育学自荐书范文
2014/02/10 职场文书
2015年信访工作总结
2015/04/07 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers