用于比较不同对象的开关

时间:2011-01-08 05:08:27

标签: php switch-statement

我主要使用switch case作为字符串值。有人可以确认它们是否可用于复杂对象的相等性以及对象是否也不同。正如你所看到的,我并不总是检查$ obj1 ==其他一些对象。两个对象都可以改变。有人可以告诉我,如果允许,这将是什么样的正确语法?我不确定我将把它作为switch()输入本身。

if ($obj1 == $obj9) 

elseif ($obj5 == $obj9)

elseif ($obj5 == $obj1)

else

新代码,这是正确的吗?

switch (true){
     case $obj1 == $obj9: 
          //do something
          break;
     case $obj5 == $obj9:
          //do something
          break;
     case $obj5 == $obj1: 
          //do something
          break;
     case default: 
          //do something
          break;  
}

1 个答案:

答案 0 :(得分:1)

根据PHP Manual,switch-case语句等于“if”语句与“==”的比较。因此,它根据these规则进行比较。 根据{{​​3}}比较对象。

BTW switch-case语句通常用于将一个值与几个其他值的集合进行比较,而if-else构造在您的问题中比较3对不同的变量。