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 相关文章推荐
WINDOWS服务器安装多套PHP的另类解决方案
Oct 09 PHP
php csv操作类代码
Dec 14 PHP
写php分页时出现的Fatal error的解决方法
Apr 18 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
php下拉选项的批量操作的实现代码
Oct 14 PHP
PHP动态输出JavaScript代码实例
Feb 12 PHP
cakephp打印sql语句的方法
Feb 13 PHP
详解Yii2 rules 的验证规则
Dec 02 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
Laravel5.1框架路由分组用法实例分析
Jan 04 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 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查看session内容的函数
2008/08/27 PHP
php中使用explode查找某个字符是否存在的方法
2011/07/12 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
使用ajax+jqtransform实现动态加载select
2014/12/01 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
python对url格式解析的方法
2015/05/13 Python
Python 中 Meta Classes详解
2016/02/13 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python使用tkinter实现简单计算器
2018/01/30 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
python线程池threadpool使用篇
2018/04/27 Python
详解python中递归函数
2019/04/16 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
Python属性和内建属性实例解析
2020/01/14 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
毕业生自荐书模版
2014/01/04 职场文书
十佳青年个人事迹材料
2014/01/28 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
党员身份证明材料
2015/06/19 职场文书