在以下情况下如何切换情况:
例如,情况1如下所示:
if($this->hasA() && $this->hasB() && $this->hasC() && $this->hasD())
{
# ....
}
情况2可能看起来像这样,依此类推:
if($this->hasA() && $this->hasB())
{
# ....
}
该函数返回一个布尔值。
这样做可能不是一个好习惯,但是我想知道在切换情况下会是什么样子。
我个人不会在上执行此操作if
,但是您可以打开true
:
switch(true) {
case $this->hasA() && $this->hasB() && $this->hasC() && $this->hasD():
//code
break;
case $this->hasA() && $this->hasB():
//code
break;
}
请记住,该功能(每个情况下,执行$this->hasA()
与$this->hasB()
在上面的代码中两次),因此,如果他们是昂贵的(复杂的查询,文件加载等),那么你最好还是运行它们一次,然后多次检查结果。
如果任何一个案例共享一些代码,那么您将按顺序构造它而不使用它,break
这样一个案例将一直执行到下一个案例。从您的示例尚不清楚,是否有些代码具有通用代码。
一个简单的例子:
switch(true) {
case $this->hasA():
//code
case $this->hasB():
//case above may or may not execute
//more code
case $this->hasC():
//one or both cases above may or may not execute
//more code
break;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句