PHP7では文字列中にUnicodeコードポイントでUTF-8の1文字を記述することができます。
Unicodeコードポイントというのは、Unicodeの文字1文字に対して割り当てられている16進数のことです。たとえば全角空白であれば「U+3000」のように表記されているのを見ると思いますし、unicode.orgのPDFでもおなじみですね。
たとえば、U+301CとU+FF5Eの2文字が次のように表現できます。
<?php
$wave_dash="\u{301c}";
var_dump($wave_dash); // string(3) "〜"
$fullwidth_tilde="\u{ff5e}";
var_dump($fullwidth_tilde); // string(3) "~"
PHP5で同じことを書こうと思うと「\x??」のスタイルで3バイト記述するしか無かったのが、PHP7では読みやすく書けてステキですね。
ちなみに
- 中カッコは必須です
- 絵文字などBMP外の文字(U+10000以降)にも対応しています
- mbstringとは無関係な実装なので、mbstringの設定がどうであろうとUTF-8の1文字(1バイトから4バイト)になります。