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
Dec 13 PHP
php ftp文件上传函数(基础版)
Jun 03 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 PHP
php rsa加密解密使用详解
Jan 14 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
详解PHP实现异步调用的4种方法
Mar 14 PHP
thinkphp框架实现数据添加和显示功能
Jun 29 PHP
微信红包随机生成算法php版
Jul 21 PHP
php自定义函数转换html标签示例
Sep 29 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
PHP7 其他语言层面的修改
Mar 09 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/11/24 PHP
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
python3大文件解压和基本操作
2017/12/15 Python
详解django中使用定时任务的方法
2018/09/27 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
keras之权重初始化方式
2020/05/21 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
求职自荐书范文
2013/12/04 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
个人主要事迹材料
2014/08/26 职场文书
学风建设演讲稿
2014/09/12 职场文书
班主任高考寄语
2015/02/26 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python