Javascript имеет средство форматирования чисел (часть Интернационализации API).
// Create our number formatter.
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
});
formatter.format(2500); /* $2,500.00 */
Используйте undefined
вместо первого аргумента (в примере 'en-US'
), чтобы использовать системный языковой стандарт (пользовательский языковой стандарт в случае, если код выполняется в браузере).
Последнее замечание, сравнивающее это со старым. toLocaleString
. Они оба предлагают по существу одинаковую функциональность. Однако toLocaleString в его более старых версиях (pre-Intl) фактически не поддерживает локали : он использует системную локаль. Поэтому убедитесь, что вы используете правильную версию ( MDN предлагает проверить наличие Intl
). Кроме того, производительность обоих одинакова для одного элемента , но если у вас много чисел для форматирования, использование Intl.NumberFormat
происходит в ~ 70 раз быстрее. Вот как использовать toLocaleString
:
(2500).toLocaleString('en-US', {
style: 'currency',
currency: 'USD',
}); /* $2,500.00 */
Очень распространенным соглашением является использование констант классов в PHP.
например
class Message
{
const HOT = 0;
const WARM = 1;
const COLD = 2;
}
Я также использую для этого класс с константами. Я добавляю следующее
реализует статический метод __toString () для выполнения предыдущий
абстрактный класс Message {
const HOT = 0;
const WARM = 1;
const COLD = 2;
общедоступные статические $ перечисления = массив (
self :: HOT => "горячий",
self :: WARM => "теплый",
self :: COLD => "холодный"
);
public static __toString ($ enum) {
return self :: $ enums [$ enum];
}
}
Я также могу использовать перечисления Message :: $ для проверки переменных:
if (!array_key_exists($is_it_valid, Message::$enums)
Вы можете использовать константы классов :
class Message
{
const hot = 0;
const warm = 1;
const cold = 2;
}
foo(Message::hot);
foo(Message::warm);
foo(Message::cold);