在 PHP 手册中这样有两个逻辑与操作符 &&
和 and
,两个有什么区别呢?下面来看一组示例:
$b = false;
1 < 2 && $b = 'a';
var_dump($b); // string(1) "a"
$b = false;
1 > 2 && $b = 'a';
var_dump($b); // bool(false)
$b = false;
1 < 2 and $b = 'a';
var_dump($b); // string(1) "a"
$b = false;
1 > 2 and $b = 'a';
var_dump($b); // bool(false)
// 直接输出是不行的,and 之后不执行
var_dump(1 < 2 and $b = 'a'); // bool(true)
同样测试一下逻辑或:
$b = false;
1 < 2 || $b = 'a';
var_dump($b); // bool(false)
$b = false;
1 > 2 || $b = 'a';
var_dump($b); // string(1) "a"
$b = false;
1 < 2 or $b = 'a';
var_dump($b); // bool(false)
$b = false;
1 > 2 or $b = 'a';
var_dump($b); // string(1) "a"
// 直接输出是不行的,or 之后不执行
var_dump(1 < 2 or $b = 'a'); // bool(true)
在 JavaScript 参考手册中使用 &&
表示逻辑与是这样描述的:
expr1 && expr2 如果 expr1 能转换成 false 则返回 expr1, 否则返回 expr2. 因此, 在 Boolean 环境中使用时, 两个操作结果都为 true 时返回 true, 否则返回 false.
1 < 2 && 's'; // "s"
1 > 2 && 's'; // false
同样的我们来看看逻辑或的描述:
expr1 || expr2 如果 expr1 能转换成 true 则返回 expr1, 否则返回 expr2. 因此, 在 boolean 环境(在if的条件判断中)中使用时, 二者操作结果中只要有一个为 true,返回 true;二者操作结果都为 false 时返回false.
1 < 2 || 's'; // true
1 > 2 || 's'; // "s"
如果 &&
和 ||
不在三元操作符之内或者不在 if 的条件判断中的时候我们要考虑他的以上这些用法。
本文由 echo 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。
Thanku for sharing this useful information.. I would like to share something too...
Thinkwik is an expertise driven web and mobile apps Development Company helping businesses achieve their goal through robust and engaging web and mobile presence. To Build real time application, mobile app and website