2323 */
2424class Normalizer
2525{
26- const FORM_D = \Normalizer::FORM_D ;
27- const FORM_KD = \Normalizer::FORM_KD ;
28- const FORM_C = \Normalizer::FORM_C ;
29- const FORM_KC = \Normalizer::FORM_KC ;
30- const NFD = \Normalizer::NFD ;
31- const NFKD = \Normalizer::NFKD ;
32- const NFC = \Normalizer::NFC ;
33- const NFKC = \Normalizer::NFKC ;
26+ public const FORM_D = \Normalizer::FORM_D ;
27+ public const FORM_KD = \Normalizer::FORM_KD ;
28+ public const FORM_C = \Normalizer::FORM_C ;
29+ public const FORM_KC = \Normalizer::FORM_KC ;
30+ public const NFD = \Normalizer::NFD ;
31+ public const NFKD = \Normalizer::NFKD ;
32+ public const NFC = \Normalizer::NFC ;
33+ public const NFKC = \Normalizer::NFKC ;
3434
3535 private static $ C ;
3636 private static $ D ;
3737 private static $ KD ;
3838 private static $ cC ;
39- private static $ ulenMask = array ( "\xC0" => 2 , "\xD0" => 2 , "\xE0" => 3 , "\xF0" => 4 ) ;
39+ private static $ ulenMask = [ "\xC0" => 2 , "\xD0" => 2 , "\xE0" => 3 , "\xF0" => 4 ] ;
4040 private static $ ASCII = "\x20\x65\x69\x61\x73\x6E\x74\x72\x6F\x6C\x75\x64\x5D\x5B\x63\x6D\x70\x27\x0A\x67\x7C\x68\x76\x2E\x66\x62\x2C\x3A\x3D\x2D\x71\x31\x30\x43\x32\x2A\x79\x78\x29\x28\x4C\x39\x41\x53\x2F\x50\x22\x45\x6A\x4D\x49\x6B\x33\x3E\x35\x54\x3C\x44\x34\x7D\x42\x7B\x38\x46\x77\x52\x36\x37\x55\x47\x4E\x3B\x4A\x7A\x56\x23\x48\x4F\x57\x5F\x26\x21\x4B\x3F\x58\x51\x25\x59\x5C\x09\x5A\x2B\x7E\x5E\x24\x40\x60\x7F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F" ;
4141
42- public static function isNormalized ($ s , $ form = self ::NFC )
42+ public static function isNormalized (string $ s , int $ form = self ::FORM_C )
4343 {
44- if (!\in_array ($ form , array ( self ::NFD , self ::NFKD , self ::NFC , self ::NFKC ) )) {
44+ if (!\in_array ($ form , [ self ::NFD , self ::NFKD , self ::NFC , self ::NFKC ] )) {
4545 return false ;
4646 }
47- $ s = (string ) $ s ;
4847 if (!isset ($ s [strspn ($ s , self ::$ ASCII )])) {
4948 return true ;
5049 }
@@ -55,9 +54,8 @@ public static function isNormalized($s, $form = self::NFC)
5554 return self ::normalize ($ s , $ form ) === $ s ;
5655 }
5756
58- public static function normalize ($ s , $ form = self ::NFC )
57+ public static function normalize (string $ s , int $ form = self ::FORM_C )
5958 {
60- $ s = (string ) $ s ;
6159 if (!preg_match ('//u ' , $ s )) {
6260 return false ;
6361 }
@@ -72,7 +70,11 @@ public static function normalize($s, $form = self::NFC)
7270 return $ s ;
7371 }
7472
75- return false ;
73+ if (80000 > \PHP_VERSION_ID ) {
74+ return false ;
75+ }
76+
77+ throw new \ValueError ('normalizer_normalize(): Argument #2 ($form) must be a a valid normalization form ' );
7678 }
7779
7880 if ('' === $ s ) {
@@ -152,7 +154,7 @@ private static function recompose($s)
152154 || $ lastUcls ) {
153155 // Table lookup and combining chars composition
154156
155- $ ucls = isset ( $ combClass [$ uchr ]) ? $ combClass [ $ uchr ] : 0 ;
157+ $ ucls = $ combClass [$ uchr ] ?? 0 ;
156158
157159 if (isset ($ compMap [$ lastUchr .$ uchr ]) && (!$ lastUcls || $ lastUcls < $ ucls )) {
158160 $ lastUchr = $ compMap [$ lastUchr .$ uchr ];
@@ -204,7 +206,7 @@ private static function decompose($s, $c)
204206 $ compatMap = self ::$ KD ;
205207 }
206208
207- $ c = array () ;
209+ $ c = [] ;
208210 $ i = 0 ;
209211 $ len = \strlen ($ s );
210212
@@ -215,7 +217,7 @@ private static function decompose($s, $c)
215217 if ($ c ) {
216218 ksort ($ c );
217219 $ result .= implode ('' , $ c );
218- $ c = array () ;
220+ $ c = [] ;
219221 }
220222
221223 $ j = 1 + strspn ($ s , $ ASCII , $ i + 1 );
@@ -231,7 +233,7 @@ private static function decompose($s, $c)
231233 if ($ uchr < "\xEA\xB0\x80" || "\xED\x9E\xA3" < $ uchr ) {
232234 // Table lookup
233235
234- if ($ uchr !== $ j = isset ( $ compatMap [$ uchr ]) ? $ compatMap [ $ uchr ] : ( isset ( $ decompMap [$ uchr ]) ? $ decompMap [ $ uchr ] : $ uchr )) {
236+ if ($ uchr !== $ j = $ compatMap [$ uchr ] ?? ( $ decompMap [$ uchr ] ?? $ uchr )) {
235237 $ uchr = $ j ;
236238
237239 $ j = \strlen ($ uchr );
@@ -283,7 +285,7 @@ private static function decompose($s, $c)
283285 if ($ c ) {
284286 ksort ($ c );
285287 $ result .= implode ('' , $ c );
286- $ c = array () ;
288+ $ c = [] ;
287289 }
288290
289291 $ result .= $ uchr ;
0 commit comments