我具有以下的代码如果条件为PHP评估
$ COND = '0' 位;如果($ cond)echo $ cond;
$ cond ='0';如果($ cond)echo $ cond;
$ cond ='0 AND 0';如果($ cond)echo $ cond;
第一个只做预期其余的没有。这些如何执行相同的行为,特别是如何评估第三种情况下的状况。
我具有以下的代码如果条件为PHP评估
$ COND = '0' 位;如果($ cond)echo $ cond;
$ cond ='0';如果($ cond)echo $ cond;
$ cond ='0 AND 0';如果($ cond)echo $ cond;
第一个只做预期其余的没有。这些如何执行相同的行为,特别是如何评估第三种情况下的状况。
尝试
if (intval($cond)) echo $cond;
但是,你为什么要这么做?
拉升第二个
if ((trim($cond)){
echo $cond;
}
在$ COND只要搜索0附有strpos
$cond = '0 AND 0';
$search = '0';
if (strpos($cond, $search) !== false) echo $cond;
这适用于所有情况,并且是合法的。 –
首先,我会解释发生了什么。在每种情况下,您都在测试一个字符串,而不是布尔表达式。一个非空字符串总是计算为true
,除非它可以转换为另一种类型。
'0'
将被转换为整数0
等以false
'0 '
就会留在这里,因为这明确地说,这是一个字符串的空间的字符串,因此是true
'0 AND 0'
显然是一个字符串,是true
也我不知道你到底想要达到什么目的,如果你需要处理其他情况,但你是什么似乎需要的是eval() function。正如文件中所说,它的使用是非常危险所以可以肯定的是$cond
可以避免它,如果可能的话。
$cond = '0 AND 0';
if(eval('return '.$cond.';'))
echo $cond;
你可以使用修剪第二个代码 –
你期待什么发生?我希望他们都回声$ cond –
我期待没有什么应该打印所有这些条件 – HardCode