zoukankan      html  css  js  c++  java
  • php短路与 短路或

    关于php短路的问题特性,三种写法的区别

    $a = 1;
    $b=0;
    第一种: $a && $b = 'cccccccc';
    第二种 $a || $b = 'cccccccc';
    第三种 if($a && $b){
    $b = 'cccccccc';
    }
    echo $b;
    谁能说说这个呢?怎么理解呢?
    最佳答案
     
    php中=是赋值, 在if中要判断条件是要用==的
    第一种: if($a && $b = 'cccccccc'), 首先判断$a是不是true?返回true, 并且 $b = 'cccccccc'(这其实是赋值,不是判断),也返回true, 所以整个if返回是true, $b = 'cccccccc'

    第二种 if($a || $b = 'cccccccc') 2个条是或的关系, 那么首先判断$a是不是true?返回true, 那么直接if返回的就是true, $b = 'cccccccc'这个根本就没有执行, $b=0

    第三种 if($a && $b) 首先判断$a是不是true?结果是true; 然后判断$b是不是true?结果是false, 那么if的结果就是false, if的语句不执行. $b=0

    在php运行的结果就是:
    $a = 1; $b=0;
    if($a && $b = 'cccccccc') echo $b; //返回cccccccc

    $a = 1; $b=0;
    if($a || $b = 'cccccccc') echo $b; //返回0

    $a = 1;$b=0;
    if($a && $b){ $b = 'cccccccc';}
    echo $b; //返回0
     
     

    其他回答

    关于优先级:"||"和"&&"大于"="
    所以第一种是先计算$a&&$b 再算赋值
    第二种是先$a||$b 但是||符号只要有一个成立就全部成立了,所以当$a不等于0 ,后面的就不会再进行运算了(因为后面无论是否运算都整个值都是成立的)。
    第三种是判断,if内是不成立的,所以b的赋值也不会进行。
    结果依次为 cccccccc 0 0
     
  • 相关阅读:
    java Jquery表单校验代码jsp页面
    IntelliJ IDEA 2016.1.1(64) 长时间激活教程
    maven 仓库
    java学习路线
    json 源码包
    centos 安装docker
    实现高并发
    将MongoDB安装成为Windows服务
    给mongodb设置密码权限
    MongoDB的win安装教程
  • 原文地址:https://www.cnblogs.com/clphp/p/5939990.html
Copyright © 2011-2022 走看看