2011-01-08 38 views
0

我主要使用开关大小写字符串值。有人可以确认它们是否可以用于复杂对象的平等以及对象是否不同。正如你所看到的,我并不总是检查$ 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; 
} 
+0

由于您将三个对象相互比较,除非您“切换(true)”(这不是构造的目的),否则这将不适合切换。你的if-elseif-else似乎是正确的选择。 – BoltClock 2011-01-08 05:12:52

回答

1

根据PHP Manual,开关case语句等于 “if” 语句与 “==” 比较。所以,它按照these规则进行比较。 对象按照objects comparison rules进行比较。

顺便说一下,switch-case语句通常用来比较一个值和其他几个值的集合,而if-else结构在你的问题中比较了3对不同的变量。