逻辑运算符
逻辑结果: bool
符号 运算规则
逻辑与: && and 两边为真即为真, 一边为假即为假
逻辑或: || or 一边为真即为真, 两边为假即为假
逻辑非: ! 真即是假, 假即是真
<?php
$a = 1;
$b = 2;
$c = 0;
$d = false;
var_dump( $a && $b );
var_dump( $a && $c );
echo '<hr>';
var_dump( $a || $b );
var_dump( $c || $b );
var_dump( $c || $d );
echo '<hr>';
var_dump( !$a );
var_dump( !$c );
echo '<hr>';
// 逻辑 + 赋值
$a = 1;
$b = 2;
$c = 0;
$d = false;
var_dump( $a && $b = 10 );
var_dump($a, $b);
echo '<hr>';
$a = 1;
$b = 2;
$c = 0;
$d = false;
var_dump( $a || $b = 10 );
var_dump($a, $b);
$a = 1;
$b = 2;
$c = 0;
$d = false;
var_dump( $c && $b = 10 );
var_dump($b, $c);
echo '<hr>';
// 小结: 当前面的运算已经能确定最终结果时, 那么后面的则不再执行
// 多个逻辑 混合使用
$a = 1;
$b = 2;
$c = 0;
$d = false;
var_dump( $a && $b || $c );
var_dump( $a && $c || $b );
var_dump( $c && $a || $b );
var_dump( $c && $a || $d );
var_dump( $a || $b && $c );
var_dump( $b || $c && $d);
echo '<hr>';
// 综合: 多个逻辑 + 赋值
$a = 1;
$b = 2;
$c = 0;
var_dump( $a || $b = 10 && $c = 1 );
var_dump($a, $b, $c);
echo '<hr>';
// t 1 2 0
$a = 1;
$b = 2;
$c = 0;
var_dump( $a && $b = 10 || $c = 1 );
var_dump($a, $b, $c);
echo '<hr>';
// t 1 t 0
$a = 1;
$b = 2;
$c = 0;
var_dump( $c || $a = 10 && $b = 1 );
var_dump($a, $b, $c);
echo '<hr>';
// t t 1 0
$a = 1;
$b = 2;
$c = 0;
var_dump( $c = 5 || $a = 10 && $b = 1 );
var_dump($a, $b, $c);
echo '<hr>';
// t 1 2 t
$a = 1;
$b = 2;
$c = 0;
var_dump( $c = 0 || $a = 10 && $b = 1 );
var_dump($a, $b, $c);
// t t 1 t
?>
三元运算符
一元运算符: ! ++ –
二元运算符: + - * / …
三元运算符: ?:
格式:
条件表达式 ? true区域 : false区域
运算规则:
条件表达式如果成立, 则执行true区域
条件表达式如果不成立, 则执行false区域
<?php
$a = 1;
$b = 1;
echo $a+$b == 2? '是2啊' : '不2啊';
echo '<hr>';
$lv = 9.5;
echo $lv<6?'青铜':($lv<7?'白银':($lv<8?'白金':($lv<9?'钻石':'王者')));
?>