public function hasForms($name, $gender)
{
//var_dump(upper(slice($name, -1)));
$name = lower($name);
// man rules
if ($gender === self::MAN) {
// soft consonant
if (lower(slice($name, -1)) == 'ь' && in_array(upper(slice($name, -2, -1)), self::$consonants)) {
return true;
} else {
if (in_array(upper(slice($name, -1)), array_diff(self::$consonants, array('Й')))) {
// hard consonant
return true;
} else {
if (slice($name, -1) == 'й') {
return true;
}
}
}
}
// common rules
if (in_array(slice($name, -1), array('а', 'я')) && !in_array(upper(slice($name, -2, -1)), self::$vowels) || in_array(slice($name, -2), array('ия', 'ья', 'ея'))) {
return true;
}
return false;
}