我遇到了一个难题,我通常只使用一堆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)
{
}
谢谢
对于方法 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
}
你可以把它变成 psr2 投诉人:
if ($this->compare($this->width, $this->height) == 0) {
} elseif ($this->compare($this->width, $this->height) < 0) {
} else {
}
阅读更多:PSR-2 编码风格指南