Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2444
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 15
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-05 14:13
文章分类

全部博文(1)

文章存档

2015年(1)

我的朋友
最近访客

分类: PHP

2015-11-05 14:33:49

php有5种算术操作符(+ - * / %),6种赋值操作符(+= -= *= /= %= .=),8种比较操作符(=== < > <= >= != <> !==),6种的逻辑操作符(如&&、 ||、 &、 |、 ! 。其中逻辑与&可写成and,逻辑或|写成or),以及一些其他操作符(错误控制操作符@、 执行操作符反引号"--不是单引号、字符串操作符.与.=、递增/递减操作符++/--、三元操作符?:)。

关于操作符优先级,可以参考相关文档。

php中&和&&的异同

点击(此处)折叠或打开

  1. <?php
  2.     $a=10;
  3.     if($a>4 && (++$a>10))
  4.     {
  5.     }
  6.     //输出结果为11.
  7.     echo $a;
  8.     ?>
  9.       
  10.     <?php
  11.     $a=10;
  12.     if($a>4 and (++$a>10))
  13.     {
  14.     }
  15.     //输出结果为11.
  16.     echo $a;
  17.     ?>
  18.       
  19.     **************************************************************
  20.       
  21.     <?php
  22.     $a=10;
  23.     if($a>4 && (++$a<10))
  24.     {
  25.     }
  26.     //输出结果为11.
  27.     echo $a;
  28.     ?>
  29.       
  30.     <?php
  31.     $a=10;
  32.     if($a>4 & (++$a<10))
  33.     {
  34.     }
  35.     //输出结果为11.
  36.     echo $a;
  37.     ?>
  38.       
  39.     *********************************************************
  40.       
  41.     <?php
  42.     $a=10;
  43.     if($a<4 && (++$a>10))
  44.     {
  45.     }
  46.     //输出结果为10.
  47.     echo $a;
  48.     ?>
  49.       
  50.     <?php
  51.     $a=10;
  52.     if($a<4 & (++$a>10))
  53.     {
  54.     }
  55.     //输出结果为11.
  56.     echo $a;
  57.     ?>
  58.       
  59.     *******************************************************************
  60.       
  61.     <?php
  62.     $a=10;
  63.     if($a<4 && (++$a<10))
  64.     {
  65.     }
  66.     //输出结果为10.
  67.     echo $a;
  68.     ?>
  69.       
  70.     <?php
  71.     $a=10;
  72.     if($a<4 & (++$a<10))
  73.     {
  74.     }
  75.     //输出结果为11.
  76.     echo $a;
  77.     ?>
  78.       
  79.     *******************************************************************
  80.       
  81.     <?php
  82.     // 下面的 sktest() 不被调用,原因是它们被运算符“短路”。
  83.     $a = (false && sktest());
  84.     $b = (true || sktest());
  85.     $c = (false and sktest());
  86.     $d = (true or sktest());
  87.       
  88.     // "||" 的优先级比 "or" 高
  89.     $e = false || true; // $e 被赋值为 (false || true),结果为 true
  90.     $f = false or true; // $f 被赋值为 false [Altair注:"=" 的优先级比 "or" 高]
  91.     var_dump($e, $f);
  92.       
  93.     // "&&" 的优先级比 "and" 高
  94.     $g = true && false; // $g 被赋值为 (true && false),结果为 false
  95.     $h = true and false; // $h 被赋值为 true [Altair注:"=" 的优先级比 "and" 高]
  96.     var_dump($g, $h);
  97.       
  98.     ?>

表达式一$a && $b ,表达式二$a & $b

1、相同点:两个表达式都是当$a、$b都为true时,表达式为真。两种运算符对此表达式结果没有影响。

2、不同点:表达式$a && $b中&&前面的$a为false时,已确定表达式为假,此时逻辑操作符&&后的$b不再进行计算,即所谓的被运算符 “短路”了。而对于表达式$a & $b,不论&前的$a真假,表达式后的$b依然要进行计算。逻辑操作符后的$b是否被运行,可能影响到后面的数据和程序结果。

对于逻辑操作符||和|,异同同上。

阅读(250) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~