В руководстве по PHP сказано, что функция money_format( string $format , float $number )
основана на функции strfmon()
C.
Возможные параметры, которые вы можете передать в качестве аргумента $format
, - это те, которые может понять команда locale
вашей операционной системы. Если вы передаете что-то другое, то число вообще не форматируется, оно просто конвертируется в строку. Это то, что случилось со мной.
Чтобы вывести список принятых значений, вы можете использовать эту команду из приглашения:
locale -a
В зависимости от вашей установки может быть указан только несколько локалей. Чтобы использовать больше, вы можете установить другие локали. В Debian вы можете сделать это следующим образом:
apt-get install locales
apt-get install locales-all
После установки всех локалей команда locale -a
перечисляет сотни локалей. Теперь функция number_format()
работает так, как вы ожидали.