Добавить специальный регистр для нуля:
if ($score === 0 || ($score > 0 && $score < $passmark))
$score === 0
не удастся для false, 0.0, "", "0", [], null
;и эти значения не пройдут $score > 0
проверку.Если вы хотите расширить определение пустого, чтобы включить любое из этих значений, добавьте специальный регистр, как вы это сделали для 0
.