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 相关文章推荐
apache+php+mysql安装配置方法小结
Aug 01 PHP
php操作mysql数据库的基本类代码
Feb 25 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 PHP
C#静态方法与非静态方法实例分析
Sep 22 PHP
8个必备的PHP功能开发
Oct 02 PHP
WordPress的主题编写中获取头部模板和底部模板
Dec 28 PHP
详解WordPress开发中的get_post与get_posts函数使用
Jan 04 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
为何说PHP引用是个坑,要慎用
Apr 02 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 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 函数语法介绍一
2009/06/14 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
JSON.stringify 语法实例讲解
2012/03/14 Javascript
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
JavaScript中数据结构与算法(五):经典KMP算法
2015/06/19 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
python的文件操作方法汇总
2017/11/10 Python
python实现类之间的方法互相调用
2018/04/29 Python
python的range和linspace使用详解
2019/11/27 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
耐克美国官网:Nike.com
2016/08/01 全球购物
公司营业员的工作总结自我评价
2013/10/05 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
车间主任岗位职责
2015/02/03 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
pytorch 使用半精度模型部署的操作
2021/05/24 Python
JavaScript原型链详解
2021/11/07 Javascript