php逻辑操作符中&和&&的异同
php有5种算术操作符(+ - * / %),6种赋值操作符(+= -= *= /= %= .=),8种比较操作符(=== < > <= >= != <> !==),6种的逻辑操作符(如&&、 ||、 &、 |、 ! 。其中逻辑与&可写成and,逻辑或|写成or),以及一些其他操作符(错误控制操作符@、 执行操作符反引号"--不是单引号、字符串操作符.与.=、递增/递减操作符++/--、三元操作符?:)。
关于操作符优先级,可以参考相关文档。
php中&和&&的异同
- <?php
- $a=10;
- if($a>4 && (++$a>10))
- {
- }
- //输出结果为11.
- echo $a;
- ?>
- <?php
- $a=10;
- if($a>4 and (++$a>10))
- {
- }
- //输出结果为11.
- echo $a;
- ?>
- **************************************************************
- <?php
- $a=10;
- if($a>4 && (++$a<10))
- {
- }
- //输出结果为11.
- echo $a;
- ?>
- <?php
- $a=10;
- if($a>4 & (++$a<10))
- {
- }
- //输出结果为11.
- echo $a;
- ?>
- *********************************************************
- <?php
- $a=10;
- if($a<4 && (++$a>10))
- {
- }
- //输出结果为10.
- echo $a;
- ?>
- <?php
- $a=10;
- if($a<4 & (++$a>10))
- {
- }
- //输出结果为11.
- echo $a;
- ?>
- *******************************************************************
- <?php
- $a=10;
- if($a<4 && (++$a<10))
- {
- }
- //输出结果为10.
- echo $a;
- ?>
- <?php
- $a=10;
- if($a<4 & (++$a<10))
- {
- }
- //输出结果为11.
- echo $a;
- ?>
- *******************************************************************
- <?php
- // 下面的 sktest() 不被调用,原因是它们被运算符“短路”。
- $a = (false && sktest());
- $b = (true || sktest());
- $c = (false and sktest());
- $d = (true or sktest());
- // "||" 的优先级比 "or" 高
- $e = false || true; // $e 被赋值为 (false || true),结果为 true
- $f = false or true; // $f 被赋值为 false [Altair注:"=" 的优先级比 "or" 高]
- var_dump($e, $f);
- // "&&" 的优先级比 "and" 高
- $g = true && false; // $g 被赋值为 (true && false),结果为 false
- $h = true and false; // $h 被赋值为 true [Altair注:"=" 的优先级比 "and" 高]
- var_dump($g, $h);
- ?>
表达式一$a && $b ,表达式二$a & $b
1、相同点:两个表达式都是当$a、$b都为true时,表达式为真。两种运算符对此表达式结果没有影响。
2、不同点:表达式$a && $b中&&前面的$a为false时,已确定表达式为假,此时逻辑操作符&&后的$b不再进行计算,即所谓的被运算符“短路”了。而对于表达式$a & $b,不论&前的$a真假,表达式后的$b依然要进行计算。逻辑操作符后的$b是否被运行,可能影响到后面的数据和程序结果。
对于逻辑操作符||和|,异同同上。
php逻辑操作符中&和&&的异同的更多相关文章
- python中的逻辑操作符
python中主要有三个逻辑操作符,分别是:and.or.not. and:且,所有人为真才为真. or:或,一个为正就是真. not:非,取反. >>> print(3>2 ...
- C++中逻辑操作符的重载分析
1,逻辑运算符的原生语义: 1,操作数只有两种值(true 和 false): 1,C 语言中只有非 0 和 0: 2,逻辑表达式不用完全计算就能确定最终值: 1,短路规则: 3,最终结果只能是 tr ...
- Linux Shell脚本逻辑操作符简介
在写程序时,会用到条件判断,测试条件是否成立.很多时候,判断条件是多个的,这个时候需要用到逻辑操作符.shell脚本中常用的有哪些逻辑操作符呢? 1.逻辑与: -a 格式: conditon1 -a ...
- 逻辑操作符---Lua: and,or,not 对比 C++:&&,||,!
lua中有三个逻辑操作符:and,or,not(逻辑与,逻辑或,逻辑非),同样c++也有类似的三个逻辑操作符:&&,||,!(逻辑与,逻辑或,逻辑非).他们的运算对象就是真和假.lua ...
- 你好,C++(17)0.1*10不等于1.0——4.1.4 关系操作符4.1.5 逻辑操作符
4.1.4 关系操作符 在C++中,除了需要用算术操作符对数据进行加减乘除的算术操作之外,我们有时候还需要对数据之间的关系进行操作,也就是对两个数据进行大小比较,得出它们之间的大小关系.在现实世界中 ...
- shell 的条件表达式及逻辑操作符简单介绍
查看系统的shell: cat /etc/shells 文件测试表达式: -f 文件 文件存在且为普通文件则真,即测试表达式成立. -d 文件 文件存在且为目录文件则真,即测试表达式成立. -s ...
- 《C++ Primer Plus》读书笔记之四—分支语句和逻辑操作符
第六章 分支语句和逻辑操作符 1.&&的优先级低于关系操作符. 2.取值范围:取值范围的每一部分都使用AND操作符将两个完整的关系表达式组合起来: if(age>17&& ...
- JavaScript:逻辑操作符“==”与“===”的区别
Summary JavaScript中,逻辑操作符“===”会先检查操作数的数据类型,对不同的数据类型会返回false. 而“==”对不同类型的操作数进行比较时,会进行类型转换后再比较. Descri ...
- 怎样用 Bash 编程:逻辑操作符和 shell 扩展
学习逻辑操作符和 shell 扩展,本文是三篇 Bash 编程系列的第二篇. Bash 是一种强大的编程语言,完美契合命令行和 shell 脚本.本系列(三篇文章,基于我的 三集 Linux 自学课程 ...
随机推荐
- 刷题总结——字符串(ssoj)
题目: 给定n个小的字符串T和一个大的字符串S,先输出T总共再S中出现了多少次 然后q个询问···每次修改S上的一个字母,然后再次输出上述答案··· n小于1000,q<200000,T的总长度 ...
- scrapy之Pipeline
官方文档:https://docs.scrapy.org/en/latest/topics/item-pipeline.html 激活pipeline,需要在settings里配置,然而这里配置的pi ...
- 获取cookie中的某个参数值
因为cookie的值是很多key=value连接起来的字符串,所以如果要取cookie中某个key的值: function getCookie(name) { let cookieValue = nu ...
- ping探测在线主机
一.实验要求: 1.对于给定范围的ip地址进行主机在线测试 2.ping测试结果保存在/tmp/ping目录下以时间戳为文件名的文件里,以便后续查看 二.实验过程: #!/bin/env/ bash# ...
- Win32 绘制RGB三原色图案
以前看到三原色的图案,一直很好奇是如何画出来.后来终于搞清楚了,其实很简单,实际上就是RGB三个分量的"位与"运算. 下面给出Win32绘制三原色图案的例子,特此记录在此: #in ...
- 转载:Flappy Bird源代码 win32 console版
#include"StdAfx.h" #include<stdio.h> #include<stdlib.h> #include<conio.h> ...
- Delphi 从PaintBox拷贝一部分内容到TBitmap
将指定的TPaintBox内容(假如为paintbox1)拷贝到一个TBitmap(如Bitmap),可以这么做 Bitmap.Width := PaintBox1.Width; Bitmap.Hei ...
- AC日记——Tree poj 3237
Tree Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 9233 Accepted: 2431 Description ...
- BZOJ2243 [SDOI2011]染色(树链剖分+线段树合并)
题目链接 BZOJ2243 树链剖分 $+$ 线段树 线段树每个节点维护$lc$, $rc$, $s$ $lc$代表该区间的最左端的颜色,$rc$代表该区间的最右端的颜色 $s$代表该区间的所有连续颜 ...
- FMDB支持的事务类型
FMDB支持的事务类型 在数据库中,事务可以保证数据操作的完整性.当存在大量并发操作,容易出现死锁问题.在SQLite中,为了解决该问题,提供三种事务模式,分别为DEFFERED.IMMEDIAT ...