简单如果其他不起作用

时间:2014-03-25 15:10:20

标签: php if-statement

<?php
    var_dump($isHoster); // prints int(0)

    if ($isHoster == 'all')
        $conditionsHoster = '0, 1';
    else
        $conditionsHoster = intval($isHoster);

    var_dump($conditionsHoster); // prints string(4) "0, 1"
?>

发生什么事了?谁可以解释一下? 这从未发生在我身上......

2 个答案:

答案 0 :(得分:6)

0 == 'all'在php中是正确的,因为php尝试将'all'转换为int(int) 'all'0;你应该写

if ($isHoster === 'all')

答案 1 :(得分:1)

    var_dump($isHoster); // prints int(0)

    if ($isHoster === 'all')
        $conditionsHoster = '0, 1';
    else
        $conditionsHoster = intval($isHoster);

    var_dump($conditionsHoster);

因为您正在将Int与String进行比较。 在比较convert $ isHoster之前比较$ isHoster =(string)$ isHoster;或用户===进行比较。