PHP 8.4.6 Released!

MessageFormatter::create

MessageFormatter::__construct

msgfmt_create

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::create -- MessageFormatter::__construct -- msgfmt_createConstructs a new Message Formatter

Description

Object-oriented style (method)

public static MessageFormatter::create(string $locale, string $pattern): ?MessageFormatter

Object-oriented style (constructor):

public MessageFormatter::__construct(string $locale, string $pattern)

Procedural style

msgfmt_create(string $locale, string $pattern): ?MessageFormatter

Constructs a new Message Formatter

Parameters

locale

The locale to use when formatting arguments

pattern

The pattern string to stick arguments into. The pattern uses an 'apostrophe-friendly' syntax; see » Quoting/Escaping for details.

Return Values

The formatter object, or null on failure.

Errors/Exceptions

When invoked as constructor, on failure an IntlException is thrown.

Examples

Example #1 msgfmt_create() example

<?php
$fmt
= msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo
msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
echo
msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Example #2 OO example

<?php
$fmt
= new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo
$fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
echo
$fmt->format(array(4560, 123, 4560/123));
?>

The above example will output:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum

See Also

User Contributed Notes

ezarko at synacor dot com
15 years ago
Beware: passing an empty string for format returns null, not a formatter which returns empty strings.

$ php -r "print_r(new MessageFormatter('en_US',' '));"
MessageFormatter Object
(
)
$ php -r "print_r(new MessageFormatter('en_US',''));"
To Top