处理PHP中的大型IF语句

Ind*_*ial 1 php if-statement

ifPHP中的简单语句有什么好的替代方法吗?我知道switch,但我猜想有一些更精致的替代方案,在处理真正重大的if陈述时会派上用场.

非常感谢,

Fle*_*ore 11

如果您无法在一个屏幕上阅读您的算法,那么您有99.9%的可能需要重构代码以提高可读性.

更改

if ($isHappening) {
  // ... millions of lines of code
} else {
  // .. another million lines of code
} 
Run Code Online (Sandbox Code Playgroud)

成

if ($isHappening) {
  happen();
} else {
  didntHappen();
}

function happen() {
  // millions of lines of code
}

function didntHappen() {
  // another million lines of code
}
Run Code Online (Sandbox Code Playgroud)


rye*_*guy 5

那里真的没有魔法锤.让它们易于管理的最好方法是将嵌套的ifs分解为它们自己的函数,以使它们更具可读性.

另外,不要忘记array_filter.这可以使您不必编写for循环来过滤掉项目.

此外,您可以使用guard语句来消除嵌套.你基本上反转你的if而return不是(将条件分解为函数的另一个原因).