PHP如果条件有或不工作

PHP如果条件有或不工作,php,Php,我这里有一个条件: if($name != '' || $name != 0 || $name != "0"){ $where .= ' AND readyBuilt.home_title = "' . $name . '"'; } 我的此条件问题如果$name等于“0”,它仍然会将$where添加到我的$where变量中。如何解决这个问题?我想,你的意思是别的,试着用&而不是|试试这个 if ( !in_array($name, array('','0',0), true )

我这里有一个条件:

if($name != '' || $name != 0 || $name != "0"){
       $where .= ' AND readyBuilt.home_title = "' . $name . '"';
}

我的此条件问题如果
$name
等于“0”,它仍然会将
$where
添加到我的
$where
变量中。如何解决这个问题?

我想,你的意思是别的,试着用
&
而不是
|
试试这个

 if ( !in_array($name, array('','0',0), true ) ) {
   $where .= ' AND readyBuilt.home_title = "' . $name . '"';
 }

如果这句话是真的:

$name等于“0”

然后,该条件的计算结果为
true

$name != ''
因此,整个条件检查的计算结果为
true

听起来您想使用
&&
而不是
|

if($name != '' && $name != 0 && $name != "0")

这样,只有满足所有三个条件,而不是仅满足一个条件时,整个条件才会计算为
true

最佳解决方案是使用:

if(!empty($name))

仅使用此选项即可解决您的问题:

if($name){
 //your condition
}

=仅比较值,而不是可以使用的数据类型
==或使用
!空($name)
而不是将其与“”和0.works进行比较,但是其他解决方案要优雅得多。