いくつかのスコアを計算する方法を使用しています。これは次の方法です。
public function getIntScore($name, $int){
switch ($name) {
case "bedrooms":
$maxscore = 15;
break;
case "living_size":
$maxscore = 10;
break;
case "property_size":
$maxscore = 10;
break;
case "date_of_construction":
$maxscore = 3;
break;
}
$houseattribute = (int) $this->$name;
$difference = abs($houseattribute - $int);
if ($difference == 0) {
return $maxscore;
}
$score = ($difference / $houseattribute) * $maxscore;
return round($score);
}
ただし、これにより「ゼロによる除算」エラーが発生します。計算する前に変数の値を確認しましたが、どれもゼロではありませんでした。
var_dump($difference, $houseattribute, $maxscore)
出力:
int(2) int(3) int(15)