关于PHP语法中的 or 与 || 的问题。
PHPz
PHPz 2017-04-10 17:24:12
[PHP讨论组]
    $a = 0;    
    $b = 0;    
    
    if($a=3 or $b=3){
        $a++;
        $b++;
    }
    echo $a.",".$b;

返还值为4,1

    $a = 0;    
    $b = 0;    
    
    if($a=3 || $b=3){
        $a++;
        $b++;
    }
    echo $a.",".$b;

返还值为1,1

why?
第一则中的or语法错了嘛?
wamp环境,php5.5.12

PHPz
PHPz

学习是最好的投资!

全部回复(1)
大家讲道理

你以为if($a=3 || $b=3)if(($a=3) || ($b=3))

其实由于运算符优先级的原因,是if($a = ( 3 || ($b = 3) ) )
然后 3 || ($b = 3) 这一句,由于短路特性($b = 3)并没有执行,这句的返回值是布尔类型true,返回给$a,echo出来是1,其自增值也不会改变。$b依然是0,自增成1。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号