逻辑运算符

逻辑与运算符有两种不同的形式,逻辑与运算符 && 优先级高于赋值运算符,逻辑与运算符 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)

results matching ""

    No results matching ""