<?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"
?>
发生什么事了?谁可以解释一下? 这从未发生在我身上......
答案 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;或用户===进行比较。