@zelenin а как тогда можно их использовать, в своем примере я попадаю постоянно в other.
ранее я использовал вот это дело:
/**
* Функция возвращает окончание для множественного числа слова на основании числа и массива окончаний
* @param $number Integer Число на основе которого нужно сформировать окончание
* @param $endingsArray Array Массив слов или окончаний для чисел (1, 4, 5),
* например array('яблоко', 'яблока', 'яблок')
* @return String
*/
function getNumEnding($number, $endingArray)
{
$number = $number % 100;
if ($number>=11 && $number<=19) {
$ending=$endingArray[2];
}
else {
$i = $number % 10;
switch ($i)
{
case (1): $ending = $endingArray[0]; break;
case (2):
case (3):
case (4): $ending = $endingArray[1]; break;
default: $ending=$endingArray[2];
}
}
return $ending;
}
Это будит система рейтинга, по набранным очкам пользователям. Тоесть 0 вполне приемлемая величина.
К примеру играют 2 игрока, первый игрок набрал 0 очков, второй набрал 100 очков. Следовательно игрок 2 выиграл и он получит больше рейтинга чем мог бы получить при наборе в 20 очков.
Если играют 4 игрока, один набрал 0, второй 20, третий 30 и четвертый 50 - четвертый игрок выиграл и его рейтинг будет зависит от разрыва между первым.
Возможно я даже не совсем правильно оформил свой вопрос. Но мне бы хотелось избегая лишних проверок красиво оформить вот такое дело:
$rating = 0; // изначальны рейтинг к выдачи
$firstgamer = 100; // очки победителя
$lastgamer = 20; // очки последнего пользователя
(сортировка по очкам, от сюда и название переменных)
далее нам нужно обработать рейтинг.
если $firstgamer набрал очков в (2,3,4,5) раза больше чем $lastgamer, то к примеру:
$rating = rand(0,5) * (2,3,4,5)
и тут же нужно проверить на 0 и на отрицательные числа. Я могу сделать 25 проверок, еще 20 переменных и тп. Но вот сейчас меня интересует больше понимание качественного кода, тоесть возможно кто-то предложит более изящный вариант чем напишу я.
Простой пример где это выгодно. Авторизация пользователя. Вот вам в каком-то виде нужно вызвать логин пользователя. Целую модель передавать или вызывать новую функцию, которая по новой сделает запрос в базу не вариант, дорого. А так мы при авторизации данные достали, в синголтон положили и бери не хочу в любом месте проекта, без лишний запросов.
Большое спасибо, то что нужно. А то при распечатке массива там торчало _identity я и с нижним подчеркиванием пробовал, а потом строки приват меня смутили и я перестал копать. Да, во времена моего изучения ооп такое-го не было