我有以下代码
$ cond =' 0&#39 ;; if($ cond)echo $ cond;
$ cond =' 0&#39 ;; if($ cond)echo $ cond;
$ cond =' 0和0&#39 ;; if($ cond)echo $ cond;
第一个只做预期其余的事情。如何执行相同的行为,特别是如何在第三种情况下评估条件。
答案 0 :(得分:1)
尝试
if (intval($cond)) echo $cond;
但你为什么要这样做?
答案 1 :(得分:1)
只需使用strpos
在$ cond中搜索0$cond = '0 AND 0';
$search = '0';
if (strpos($cond, $search) !== false) echo $cond;
答案 2 :(得分:1)
首先,我将解释发生了什么。在每种情况下,您都在测试字符串,而不是布尔表达式。非空字符串始终计算为true
,除非它可以转换为其他类型。
'0'
将转换为整数0
,因此转换为false
'0 '
将保留为字符串,因为明确表示它是字符串的空格,true
'0 AND 0'
显然是一个字符串,也是true
我不知道你究竟想要实现什么,如果你需要处理其他案件,但你似乎需要的是eval() function。如文档中所述,它的使用非常危险所以请确保$cond
可以避免它,如果可能的话。
$cond = '0 AND 0';
if(eval('return '.$cond.';'))
echo $cond;
答案 3 :(得分:0)
尝试第二个
if ((trim($cond)){
echo $cond;
}