php判断$1 or $j and $z 顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php判断$1 or $j and $z 顺序相关的知识,希望对你有一定的参考价值。
php中
$1 or $j and $z
这样的判断 运算完or之后就不在进行判断了么?只进行一次判断么?
但是 and优先级更高哦
你要写成( $i or $j) and $z
假设 三个变量都是boolen类型
还可以试试 | 和 & 位移运算符 这个也是 & 比 | 优先
$i | $j & $z
也是支持的
另外
and 可以写成 &&
or 可以写成 ||
这种形式 的运算优先级比 and or 这种高一级
逻辑运算 级比 位运运算优先级低,逻辑运算的优先级 几乎是最低的。
$1 可以这种变量?????? 你这个应该是 $i吧追问
||和or不都是或么?他们级别不同么?是$i
追答|| 优先级比 or高, 比 and 还高
位运算 高于逻辑运算
逻辑运算中 &&写法 高于 and 写法
and or写法优先级是最最最低的 ,除了引号。就是and or 这种最低
无论是 位运算、逻辑运算符号, and(与运算) 优先级最高
无论是 位运算、逻辑运算符号, and(与运算) 优先级最高?
无论是 位运算、逻辑运算符号, and(与运算) 优先级最高?
追答同种运算混合中, and(与运算) 优先级最高
官方php手册
$i为真
$j为真
$z为假
if($i or $j and $z) 和 if($i || $j and $z)这两个的区别,我不太明白他们的运算顺序
前者,先算 $j and $z 然后的结果 再 or $i
后者 先算 $i or $j 然后的结果 再 $z
和小学四则混合运算一个道理, 类似 先乘除后加减
建议,不要混合 逻辑运算的两种写法,你自己会乱的
建议用 括号表示优先级就好了
非要从左到右的话 你可以写成 ($i or $j) and $z
$i = $j = true;
$z = false;
var_dump(($i or $j) and $z) ;////// 输出为 false;
var_dump($i or $j and $z) ;////// 输出为 true;
不是的,判断是进行了两次,不过&&的优先级要高于||,所以是从后往前运算,如果你想要从前往后,那么前面就要加上括号追问
是$i if($i or $j and $z) 和 if($i || $j and $z)这两个的区别,我不太明白他们的运算顺序
追答你写的两个不都是一样的吗?
and 和 &&是一个意思 or和||也是一个意思,具体的顺序可能要参考一下手册,不过运算顺序没有必要去记,程序员一般都是给自己需要优先运算的东西加上括号
Python中 and or 运算顺序详解 --- 短路逻辑
核心思想
表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。
表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。
若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。
详情参见:http://www.cnblogs.com/an9wer/p/5475551.html
以上是关于php判断$1 or $j and $z 顺序的主要内容,如果未能解决你的问题,请参考以下文章