我遇到了一个难题,我通常只使用一堆ifs或开关。
为了正确看待这一点,我正在研究的当前项目涉及比较图像的宽度和高度,以获得一个数字来确定宽度是否长于高度或相同。
到目前为止,这是我的代码:
private function compare($width, $height)
{
return $width - $height;
}
这可以按照您的预期运作。
我想知道的是,如果有更好的方法可以做到这一点:
if($this->compare($this->width, $this->height) == 0)
{
}
if($this->compare($this->width, $this->height) < 0)
{
}
if($this->compare($this->width, $this->height) > 0)
{
}
由于
答案 0 :(得分:2)
对于方法compare()返回的值,你只有三个可能性,所以我们只需要做两个条件并且可以忽略一个:
$recievedValue = $this->compare($this->width, $this->height);
if( $recievedValue == 0 )
{
// The value is equal to 0
}
else if( $recievedValue < 0 )
{
// The value is less than 0
}
else
{
// The value is more than 0
}
答案 1 :(得分:0)
你可以把它变成psr2抱怨:
if ($this->compare($this->width, $this->height) == 0) {
} elseif ($this->compare($this->width, $this->height) < 0) {
} else {
}
了解更多: PSR-2 Coding Style Guide