Количество страниц и морфология

Тема в разделе "Как сделать...", создана пользователем chapser, 23 авг 2015.

Статус темы:
Закрыта.
  1. chapser

    chapser Создатель

    Регистр.:
    12 сен 2007
    Сообщения:
    47
    Симпатии:
    20
    Подскажите, почему не работает функция? При изменении значения в $res выводится "страниц", даже если указать цифру "2"
    PHP:
    $res "1";

    $countp getPagesCount($res);

    echo 
    $res;
    echo 
    $countp;

    function 
    getPagesCount($res){
       
    $count_array=array("страница","страницы","страниц");
       
    $count $count_array[2];
       
    $d=substr($num,strlen($num)-1,1);
        
       if(
    $d==1$count=$count_array[0];
         if(
    $d>&& $d<5$count=$count_array[1];
         if(
    $num>100){
           
    $d=(substr($num,strlen($num)-2,2));
           if(
    $d>10 && $d<15$count=$count_array[2];
         } else if(
    $num>10 && $num<15$count=$count_array[2];
       return 
    $num.' '.$count;
    }
    Премного благодарен, все супер
     
    Последнее редактирование модератором: 24 авг 2015
  2. ArtyGrand

    ArtyGrand Постоялец

    Регистр.:
    6 июн 2009
    Сообщения:
    81
    Симпатии:
    37
    Воспользуйся таким
    PHP:
    pluralize($res'страница''страницы''страниц');

    function 
    pluralize($num$str1$str2$str3){
        
    $val $num 100;
        if (
    $val 10 && $val 20) return "$num $str3";
        else {
            
    $val $num 10;
            if (
    $val == 1) return "$num $str1";
            elseif (
    $val && $val 5) return "$num $str2";
            else return 
    "$num $str3";
        }
    }
     
Статус темы:
Закрыта.