Chapter 7. Unicode Enhancements
While PHP 6 never emerged with its promise of Unicode greatness, that doesn’t mean PHP doesn’t support Unicode. PHP 7.0 still includes some enhancements to its existing Unicode support.
These additions come from two different RFCs. These are “Unicode Codepoint Escape Syntax” RFC and the “IntlChar class” RFC.
Unicode Codepoint Escape Syntax
A simple, yet powerful change allows us to easily embed complex Unicode characters in (double quoted) strings. Similar to other languages, this uses the \u escape sequence; however, in other languages, this is then followed directly by four hexadecimal digits to represent the character. For PHP 7.0, we instead follow it with an arbitrary number of hexadecimal numbers inside curly braces ({}).
The reason for this is that using a fixed length of four hexadecimal digits would limit us to the Basic Multilingual Plane, or BMP (U+0000 to U+FFFF), while many useful characters—in particular, emojis—reside outside of the BMP and require six hexadecimal digits.
Requiring six digits would mean that the majority of characters used would need to be left padded with two zeros (e.g., \u001000). Allowing arbitrary lengths would introduce potential ambiguity for Unicode points followed by other numbers, particularly if you were expecting the same behavior as the other languages with four digits.
With the curly braces, you can specify any number of hexadecimal digits, without the need to left pad, and you can completely avoid ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access