![]() | Автор: Никита Иванов | 23 июня 2015 12:13 |
Вопрос стар как мир - склонение слов в зависимости от общего количественного показателя. Например, на сайте 15 гостей и 3 новые новости. В английском языке достаточно формы day(s), byte(s) и тд, но для других языков этого мало. Как же решить этот вопрос?
Конструкциях число + слово обязательно придется учитывать склонения. Формы вроде гостя(ей) и новость(ей) совершенно не красят сайты, тем более давно можно решить данный вопрос с помощью средств программирования.
Параметры вызова: $num - число, $words - массив склонений нужного слова. Как формируется массив вы можете посмотреть на примерах.
Результат работы скрипта:
Сейчас на сайте 2 гостя и 3 новости
Чтобы было удобнее формировать массивы со склонениями, запомните ряд чисел 1-2-5, а потом мысленно подставляйте их в массив: (один рубль, два рубля, пять рублей) или (одна новость, две новости, пять новостей).
Удачи в кодинге! И хорошего настроения!)
Конструкциях число + слово обязательно придется учитывать склонения. Формы вроде гостя(ей) и новость(ей) совершенно не красят сайты, тем более давно можно решить данный вопрос с помощью средств программирования.
function num2word($num,$words) {
$num=$num%100;
if ($num>19) { $num=$num%10; }
switch ($num) {
case 1: { return($words[0]); }
case 2: case 3: case 4: { return($words[1]); }
default: { return($words[2]); }
}
}
Параметры вызова: $num - число, $words - массив склонений нужного слова. Как формируется массив вы можете посмотреть на примерах.
// Гостей
$num1=2;
$words1=Array("гость", "гостя", "гостей");
// Новостей
$num2=3;
$words2=Array("новость", "новости", "новостей");
// Написать по-русски
echo "Сейчас на сайте ";
echo $num1." ".num2word($num1,$words1); // сколько гостей
echo " и ";
echo $num2." ".num2word($num2,$words2); // сколько новостей
Результат работы скрипта:
Сейчас на сайте 2 гостя и 3 новости
Чтобы было удобнее формировать массивы со склонениями, запомните ряд чисел 1-2-5, а потом мысленно подставляйте их в массив: (один рубль, два рубля, пять рублей) или (одна новость, две новости, пять новостей).
Удачи в кодинге! И хорошего настроения!)
Как в PHP загрузить на сайт изображение с изменением веса и размера? Следующая статья
Как подсветить синтаксис HTML-кода средствами PHP
Похожие статьи
10 января 2014 14:56 |
![]() |
05 марта 2014 12:47 |
![]() |
22 апреля 2013 17:06 |
![]() |
20 июня 2013 18:26 |
![]() |
03 июля 2013 12:55 |
![]() |