PHP &&和and,||和or

一、&&、and、||、or作为单独的表达式

1、&&、and示例
<?php
! isset ($var1) && $var1 = 2;
echo  $var1;
! isset ($var1) && $var1 = 2;
echo  $var1;
isset ($var1) && $var1 = 3;
echo  $var1;

! isset ($var2) and $var2 = 2;
echo  $var2;
! isset ($var2) and $var2 = 2;
echo  $var2;
isset ($var2) and $var2 = 3;
echo  $var2;
?>

输出结果: 224224

结论:如果&&/and左边表达式为真,右面表达式方可执行。

2、||、or示例
<?php
! isset ($var1) || $var1 = 2;
echo  $var1;
! isset ($var1) || $var1 = 3;
echo  $var1;
isset ($var1) || $var1 = 4;
echo  $var1;

! isset ($var2) or $var2 = 2;
echo  $var2;
! isset ($var2) or $var2 = 3;
echo  $var2;
isset ($var2) or $var2 = 4;
echo  $var2;
?>

输出结果:
Notice : Undefined variable: var1 in  D:\Web Projects\test\and.php  on line  3
Notice : Undefined variable: var1 in  D:\Web Projects\test\and.php  on line  5
4
Notice : Undefined variable: var2 in  D:\Web Projects\test\and.php  on line  10
Notice : Undefined variable: var2 in  D:\Web Projects\test\and.php  on line  12
4

结论:如果||/or左边表达式为假,右面表达式方可执行。

二、&&、and、||、or表达式赋值给变量

1、&&、and
<?php
$true  =  TRUE ;
$false =  FALSE ;
$rt1 = $true && $false; //$rt1:FALSE
$rt2 = $true and $false; //$rt2:TRUE

var_dump($rt1); //FALSE
var_dump($rt2); //TRUE
var_dump($true && $false); //FALSE
var_dump($true and $false); //FALSE
var_dump($rt1 = $true && $false);  //FALSE
var_dump($rt2 = $true and $false); //FALSE
?>

这里最让人感到奇怪的就是为什么$rt1成了FALSE,而$rt2却是TRUE。其实这是PHP优先级在作怪。从文档中我们看到,赋值符号”=”的优先级低于逻辑与符号”& &”,但高于逻辑与符号”and”(也就是&&  > = > and)。也就是说:

$rt1 = $true & &  $false;
$rt2 = $true and $false;
在PHP看来其实是:
$rt1 = ($true & &  $false);
($rt2 = $true) and $false;

2、||、or的情况与&&、and一样,自己写代码测试,再次不再赘述。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值