php的短路原则以及位运算

我想我还是不习惯,从默默无闻到有人喜欢!

短路作用

1
2
$a = false || $b = 5;
echo $b;

当 || 前面的值为 false 时, || 后的表达式才会被执行, 此时结果为5;

1
2
3
$a = true || $b = 5;
echo $b;

当 || 前面的值为 true 时, || 后的表达式不会被执行, 此时结果就找不到 $b

1
2
3

$b = false && $a = 1;
echo $a;

当 && 前面的值为false 时, 后面的表达式不会被执行

1
2
$b = true && $a = 1;
echo $a;

只有当 && 前面的值为true 时, 后面的表达式才会被执行

位运算

左移 <<

左移运算的实质是将对应的数据的二进制值逐位左移若干位,并在空出的位置上填0,最高位溢出并舍弃。
左移一位, 就实现了乘2运算

1
2
3
4
echo 40 << 1;
//结果是 80
echo 40 << 2;
//结果是160

右移 >>

可以实现 除 2 运算

1
2
3
4
5
6
echo 40 >> 1;
//结果是 20
echo 40 >> 2;
//结果是 10
echo 9 >> 1;
//结果是4