Php 任何替代方案';s到多行if语句?

Php 任何替代方案';s到多行if语句?,php,syntactic-sugar,Php,Syntactic Sugar,有没有其他模式可以将多行if语句简化为更可读或更形象的语句?比如: if ($x == $y && $x == $z && $y == $v && $m == $t && $f == $x && $h == $g && $q == $w && $w == $p // etc ) 您可以使用以下方法压缩此特定实例: if (array($x, $x, $y,

有没有其他模式可以将多行if语句简化为更可读或更形象的语句?比如:

if ($x == $y
  && $x == $z
  && $y == $v
  && $m == $t
  && $f == $x
  && $h == $g
  && $q == $w
  && $w == $p // etc
)

您可以使用以下方法压缩此特定实例:

if (array($x, $x, $y, $m, $f, $h, $q, $w)
 == array($y, $z, $v, $t, $x, $g, $w, $p))
但我不确定这是否是你想要的。您的单字母变量名有点抽象


如果您担心可读性,那么在
&
上使用
有时会有所帮助。

如果您正在比较那么多条件,重构可能是正确的……我没有对生成两组变量的代码的写访问权,我只需要检查一组是否与另一组重复。我认为这种说法是普遍的,并且容易理解。任何“聪明”的方法都可能会牺牲这些特性。@chuster:你是说除了逐个检查每个属性之外,你不知道有什么更容易的方法来比较两个相同的对象吗?此外,这听起来是创建方法的绝佳机会。@kjy112:谢谢,但该代表只是帮助他人和学习他人经验的额外奖励。;-)谢谢单字母变量只是因为我不想输入常规变量名。我的腕管个人更喜欢
&&
(我也觉得它比“and”更直观,但这可能只有我一个人。)@Brad:如果这是我经常遇到的问题,我甚至会把它变成URL字符串
“$x=$y$x=$z$y=$v”
并通过url\u parse/array\u keys/values包装函数进行比较。取决于变量类型。当然,在任何情况下都是一个辅助函数。如果这些实际上是对象,那么它们有什么问题?