PHP中运算符优先级面试题

(1)

<?php

 if($a = 100 && $b = 200 ){
        var_dump($a);
        var_dump($b);
    }
if($a = (100 && $b = 200) ){
        var_dump($a);
        var_dump($b);
    }
if($a = (100 && 200) ){
        var_dump($a);
        var_dump($b);
    }
if($a = true ){
        var_dump($a);
        var_dump($b);
    }

解析:
1.&& 优先于= 
2.&& 具有短路作用,它在运行的时候先计算左值,如果左值为ture,再计算右值。如果左值为false,则不计算右值
3.100表示true,需要计算右值,200赋值给b, 100 && 200 结果为true; 最后赋值给a;
输出结果:
bool(true)
int(200)

练习题:

 if($a = 100 && $b = false ){
        var_dump($a);
        var_dump($b);
    }

    var_dump($a);
    var_dump($b);
 

输出:
bool(false)
bool(false)

(2)

 $a = 3;
    $b = 5;
    if ($a = 5 || $b = 7) {
        var_dump($a);
        var_dump($b);
        $a++; 
        $b++; 
        var_dump($a);
        var_dump($b);
    }

解析:
1.|| 同样具有短路功能 当左侧的值为true是,右边的表达式是不运行的。
如题,b=7不运行,表达式可以化简为 a = true。
$a ++ 输出 ture ++ 还是 true;

输出结果:
bool(true)
int(5)
bool(true)
int(6)

练习题:

$a = 3;
    $b = 5;
    if ($a =  '0' || $b = 7) {
        var_dump($a);
        var_dump($b);
        $a++; 
        $b++; 
        var_dump($a);
        var_dump($b);
    }

输出
bool(true)
int(7)
bool(true)
int(8)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值