解决方案 »

  1.   


    $c=1;
    $e=1;
    $h=1;
    if($c&&$a=$e||$h=$c&&$e||$h+1){
    var_dump($c);
    }
      

  2.   

    && 和 || 的优先级相等,自左向右依次进行#1 的代码中有赋值表达式
    = 的优先级低于 && 和 || 
    赋值要在 && 和 || 后进行同时要考虑到条件表达式的短路效应(多个或条件并列,前面的成立,后面的不运算)改变优先级,可用括号括起
      

  3.   

    怎么文档的优先级&& 和||不一样啊
      

  4.   

    是的,文档中表述的 && 优先级 高于 ||
    但下面的测试,就看不出这一点var_dump(1 && 0); //bool(false)
    var_dump(1 && 0 || 1); //bool(true)
    var_dump((1 && 0) || 1); //bool(true)
    var_dump(1 && (0 || 1)); //bool(true)
    var_dump(1 && 1 || 0); //bool(true)
    var_dump((1 && 1) || 0); //bool(true)
    var_dump(1 && (1 || 0)); //bool(true)
      

  5.   

    && 比 || 优先级要高