求大神帮忙看看一段比较恶心的代码
php吧
全部回复
仅看楼主
level 11
<?php
$i = 3;
$n = 3;
if($i = 5||$n = 5){
$i++;
$n++;
echo $i;
echo $n;
}
输出结果是14 求解释
2013年11月18日 11点11分 1
level 8
<?php
$i = 3;
$n = 3;
if( $i = (
5 // 逻辑运算第一参数是5, 5为真, 短路运算, 所以 $n = 5这句跳过.
|| // 逻辑或运算, 这个运算符的优先级比 赋值= 高, 在这儿加上括号说明.
( $n = 5 ) ) ) // 这个语句被短路运算跳过.
{
// 在此处 $i = true, $n = 3
$i++; // 看起来是布尔类型不支持 ++ 运算, 所以$i 依然为true, 而true就是1
$n++; // $n ++ <==> $n = 3 + 1
echo $i; // 所以这儿输出1
echo $n; // 所以这儿输出4.
}
// 解释是这样的. 不过我一直以为布尔的++运算也会是+1. 原来不是.
2013年11月18日 12点11分 4
明白了[哈哈]
2013年11月18日 14点11分
level 13
运算符优先级(从高到低),如果两个同时出现,则等级高的先行运算(无括号的情况),如加括号,括号里的先行运算;
! 取反
* / % 乘除和取余
+ - . 加减和连接字符串
<< >> 位运算左移和右移
== != === !== <> 比较运算
& 位运算(与),还有个左右是地址引用
^ 位运算(按位异或)
| 位运算(或)
&& 逻辑运算(与)
|| 逻辑运算(或)
?: 三元运算
= += -= *= /= .= %= &= |= ^= <<= >>= => 赋值运算
从左到右边,依次是:加、加等、减等、乘等、除等、连接等(点+等于号)、求余等、与等、或等、异或等、左移等、右移等、最后一个在数组中能看到,我也不知道叫啥名字。。
and 逻辑与
xor 逻辑异或
or 逻辑或
2013年11月18日 14点11分 5
[胜利]
2013年11月18日 14点11分
level 7
擦!一个=
2013年11月18日 16点11分 6
level 7
运算符的优先级。
欢迎加入群:290647494 学习
2013年11月26日 01点11分 8
level 8
运算优先差异,看情况使用吧,不要理解成 || == or , && == and ,从实际例子学习
$p = 6 or 0;
var_dump($p);//int(6)
$p = 6 || 0;
var_dump($p);//bool(true)
$p = 6 and 0;
var_dump($p); //int(6)
$p = 6 && 0;
var_dump($p); //bool(false)
2013年11月26日 06点11分 9
level 7
不懂
2013年12月02日 10点12分 10
level 11
完全看不懂,这什么题目????[汗][汗][汗][汗][汗][汗][汗]
2013年12月02日 11点12分 11
1