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_Collection容器
    ArrayList实现分组功能
    scrapy 安装出错 [err2] no such file or directory: 'README.rst'【已解决】
    python spyder 今天突然打不开了【已解决】
    SVN使用教程总结
    MVC框架浅析(基于PHP)
    Web性能优化方案
    野生程序员的故事
    js控制页面跳转,清缓存,强制刷新页面
    js中json处理总结之JSON.parse
  • 原文地址:https://www.cnblogs.com/clphp/p/5939990.html
Copyright © 2011-2022 走看看