PHP Short Plural function

April 29, 2020

Склоняем числительные на PHP 7.4

Небольшая зарисовка на тему как сделать склонение числительных на PHP 7.4 используя новый синтаксис лямбд:

<?php

function create_plural(array $a): callable { return fn(int $n): string => sprintf( $a[ (20 > ($n %=100) && $n > 4) ? 2 : [2,0,1,1,1,2][ (($n %= 10) < 5) ? $n : 5] ], $n ); }

$plural_day = create_plural([‘%s день’,‘%s дня’,‘%s дней’]);

var_dump( $plural_day(1), // 1 день $plural_day(2), // 2 дня $plural_day(5) // 5 дней );



Profile picture

Written by Alexander Mayorov
Full Stack CTO