Множественные и единственные термины в PHP - PullRequest
3 голосов
/ 21 февраля 2011

Я проверяю количество пользователей нашего сайта, ниже приведен код. Как я могу использовать слово «пользователь», если есть только 1 учетная запись, и как я могу использовать «пользователи», если есть> 1.

код:

       $result = mysql_query("SELECT * FROM users WHERE user_id='$userid'");
       $num_rows = mysql_num_rows($result);

        echo "amount of users.";

Ответы [ 4 ]

8 голосов
/ 21 февраля 2011

Все эти ответы будут работать хорошо, но если вы ищете способ многократного использования, вы всегда можете вывести его из внешнего вида:

function get_plural($value, $singular, $plural){
    if($value == 1){
        return $singular;
    } else {
        return $plural;
    }
}

$value = 0;
echo get_plural($value, 'user', 'users');

$value = 3;
echo get_plural($value, 'user', 'users');

$value = 1;
echo get_plural($value, 'user', 'users');

// And with other words
$value = 5;
echo get_plural($value, 'foot', 'feet');

$value = 1;
echo get_plural($value, 'car', 'cars');

Или, если вы хотите, чтобы он был еще более автоматизированным, вы можете настроить его так, чтобы переменная $plural задавалась только в том случае, если это альтернативное слово (например: фут / фут):

function get_plural($value, $singular, $plural = NULL){
    if($value == 1){
        return $singular;
    } else {
        if(!isset($plural)){
            $plural = $singular.'s';
        }
        return $plural;
    }
}

echo get_plural(4, 'car');   // Outputs 'cars'
echo get_plural(4, 'foot');  // Outputs 'foots'
echo get_plural(4, 'foot', 'feet');  // Outputs 'feet'
5 голосов
/ 21 февраля 2011

Может быть, я ошибаюсь, но это очевидно:

echo $num_rows > 1 ? 'users' : 'user';
4 голосов
/ 21 февраля 2011
if ($num_rows === 1) {
    echo "a user.";
}
else if ($num_rows > 1) {
    echo "amount of users.";
}
else {
    echo "no users".
}
4 голосов
/ 21 февраля 2011

Попробуйте

if($num_rows === 1)
{
    echo "user";
}
else
{
    echo "users";
}

или в краткой форме

echo $num_rows === 1 ? "user" : "users";
...