写代码的时候,有个同事的一行代码吸引了我:
$arr = $_POST;
$arr || var_dump('未登录');
运行结果:如果$arr为空数组,那么打印“未登录”。
一开始觉得很奇怪,| | 运算符,不是两边只要有一边是true,都会执行的吗?为什么$arr为true的时候,就不打印”未登录“了呢?做事不能看表面,他底层实现应该是:
true || var_dump(‘未登录’); // true已经满足条件了,后面的var_dump不执行;
false || var_dump('未登录'); // false 没有满足条件,后面的var_dump便执行