本人小菜,学PHP时间不长
做网页中出了点故障
empty($pid)?($sta=0 & $pid=1):$sta=$pid*$list-$list;
empty($pid)?($sta=0 && $pid=1):$sta=$pid*$list-$list;
请问&&和&什么区别?还是($sta=0 & $pid=1)我这儿有根本性的问题?

解决方案 »

  1.   

    一样?只是运算符不一样?
    我这句话要达到的意思就是
    if(empty($pid)){
    $sta=0;$pid=1;
    }else{
    $sta=$pid*$list-$list;
    }
    如果用三元,应该怎么写?
      

  2.   

    &是bool 操作数的逻辑“与”运算。
    &&是条件“与”运算符。
      

  3.   

    &:为整型和 bool 类型预定义了二进制 & 运算符。对于整型,& 计算操作数的逻辑按位“与”。对于 bool 操作数,& 计算操作数的逻辑“与”;也就是说,当且仅当两个操作数均为 true 时,结果才为 true。
    &&:条件“与”运算符 (&&) 执行其 bool 操作数的逻辑“与”运算,但仅在必要时才计算第二个操作数。操作
    x && y
    对应于操作x & y
    不同的是,如果 x 为 false,则不计算 y(因为不论 y 为何值,“与”操作的结果都为 false)。这被称作为“短路”计算。
      

  4.   

    对于你来说
    empty($pid)?($sta=0 & $pid=1):$sta=$pid*$list-$list; 
    empty($pid)?($sta=0 && $pid=1):$sta=$pid*$list-$list; 
    没有本质的区别
    这两个语句都是对
    $sta、$pid 
    进行选择性赋值