Я прочитал, что money_format недоступен в Windows и некоторых дистрибутивах Linux (например, версии BSD 4.11). Но я хочу написать кросс-платформенную библиотеку, используя обычную функцию, когда она доступна, и использовать это обходное решение, если нет, поэтому моя библиотека сможет работать на каждом веб-сервере на базе PHP.
Есть ли простое решение проверить, доступна ли встроенная функция, и если не включать решение сверху?
Функция money_format () определяется только в том случае, если система имеет функции strfmon. Например, Windows не делает этого, поэтому money_format () не определен в Windows.
Таким образом, вы можете использовать этот PHP-код:
setlocale(LC_ALL, ''); // Locale will be different on each system. $amount = 1000000.97; $locale = localeconv(); echo $locale['currency_symbol'], number_format($amount, 2, $locale['decimal_point'], $locale['thousands_sep']);
С этим вы можете написать код, который фактически переносится, а не полагаться на функции операционной системы. Наличие функции money_format, доступной в PHP без расширения, довольно глупо. Я не понимаю, почему вы хотели бы создавать несоответствия между различными операционными системами на языке программирования