manual-php
Version:
64 lines (39 loc) • 1.51 kB
Markdown
# 逻辑运算符
逻辑与运算符有两种不同的形式,逻辑与运算符 `&&` 优先级高于赋值运算符,逻辑与运算符 `and` 优先级低于赋值运算符。逻辑与运算符在两个值都为 `true` 时返回 `true` 。
```php
var_dump(false && foo()); // bool(false)
var_dump(false and foo()); // bool(false)
$foo = true && false;
var_dump($foo); // bool(false)
$foo = true and false;
var_dump($foo); // bool(true)
```
逻辑或运算符有两种不同的形式,逻辑或运算符 `||` 优先级高于赋值运算符,逻辑或运算符 `or` 优先级低于赋值运算符。逻辑或运算符在两个值任何一个为 `true` 时返回 `true` 。
```php
var_dump(true || foo()); // bool(true)
var_dump(true or foo()); // bool(true)
$foo = false || true;
var_dump($foo); // bool(true)
$foo = false or true;
var_dump($foo); // bool(false)
```
逻辑异或运算符 `xor` 优先级低于赋值运算符。逻辑异或运算符 `xor` 当一个值为 `true` 另一个值为 `false` 时返回 `true` 。
```php
var_dump(false xor true); // bool(true)
$foo = 'foo';
$bar = '0';
var_dump($foo xor $bar); // bool(true)
$foo = false xor true;
var_dump($foo); // bool(false)
```
逻辑非运算符 `!` 当一个值为 `true` 时返回 `false` , 当一个值为 `false` 时返回 `true` 。
```php
$foo = 'foo';
var_dump(!$foo); // bool(false)
$bar = '0';
var_dump(!$bar); // bool(true)
```