PHP中的复数和单数术语

时间:2011-02-21 14:14:00

标签: php mysql singular plural

我正在做一些用户检查我们的网站,下面是代码。如果只有1个帐户,我如何使用“用户”一词?如果有> 1,我如何使用“用户”。

代码:

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

        echo "amount of users.";

4 个答案:

答案 0 :(得分:8)

所有这些答案都能很好地运作,但如果您正在寻找一种可重复使用的方式,您可以随时将其外部化:

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'

答案 1 :(得分:5)

也许我弄错了,但很明显:

echo $num_rows > 1 ? 'users' : 'user';

答案 2 :(得分:4)

尝试

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

或简称

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

答案 3 :(得分:4)

if ($num_rows === 1) {
    echo "a user.";
}
else if ($num_rows > 1) {
    echo "amount of users.";
}
else {
    echo "no users".
}