Как исправить ошибку с классом NumberFormatter()?

Здравствуйте, уважаемые программисты. Раньше у меня на сервере был установлен php версии 7.0.33 (native), но из-за одного проекта мне пришлось установить версию 7.3.27 (alt). Далее, в связи с переходом пришлось изменить способ автоматического подключения своих классов:
Было раньше
if(!function_exists('__autoload')){
function __autoload($classname) { $path = BASE_DIR.'/systemDir/classes/'.$classname; require_once("{$path}.php");}
 }

Теперь стало
$autoload = function ($classname){ $path = BASE_DIR.'/systemDir/classes/'.$classname; require_once("{$path}.php");};
spl_autoload_register($autoload);

Так вот, раньше у меня без проблем работала функция суммы прописью
function number2string($value)
{
	$value = explode('.', number_format($value, 2, '.', ''));

	$f = new \NumberFormatter('ru', \NumberFormatter::SPELLOUT);
	$str = $f->format($value[0]);

	// Первую букву в верхний регистр.
	$str = mb_strtoupper(mb_substr($str, 0, 1)) . mb_substr($str, 1, mb_strlen($str));

	// Склонение слова "рубль".
	$num = $value[0] % 100;
	if ($num > 19) {
		$num = $num % 10;
	}
	switch ($num) {
		case 1: $rub = 'рубль'; break;
		case 2:
		case 3:
		case 4: $rub = 'рубля'; break;
		default: $rub = 'рублей';
	}

	return $str . ' ' . $rub . ' ' . $value[1] . ' копеек.';
}


А теперь, у меня не работает. Ругается, что не может найти класс NumberFormatter(). А найти он его пытается по пути указанному в autoload. Хотя это встроенный класс в php. И, кстати, если возникнут вопросы про поддержку класса
sudo apt-get install php7.0-intl
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлен пакет php7.0-intl самой новой версии (7.0.33-0+deb9u10).


Подскажите, как исправить это дело?
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы