@@ -11878,10 +11878,25 @@ public static function substr_compare(
11878
11878
||
11879
11879
$ length !== null
11880
11880
) {
11881
- $ encoding = self ::normalize_encoding ($ encoding , 'UTF-8 ' );
11881
+ if ($ encoding === 'UTF-8 ' ) {
11882
+ if (\PHP_VERSION_ID < 70400 ) {
11883
+ if ($ length === null ) {
11884
+ $ str1 = (string ) \mb_substr ($ str1 , $ offset );
11885
+ } else {
11886
+ $ str1 = (string )\mb_substr ($ str1 , $ offset , $ length );
11887
+ }
11882
11888
11883
- $ str1 = (string ) self ::substr ($ str1 , $ offset , $ length , $ encoding );
11884
- $ str2 = (string ) self ::substr ($ str2 , 0 , (int ) self ::strlen ($ str1 ), $ encoding );
11889
+ $ str2 = (string ) \mb_substr ($ str2 , 0 , (int ) self ::strlen ($ str1 ), $ encoding );
11890
+ } else {
11891
+ $ str1 = (string ) self ::substr ($ str1 , $ offset , $ length , $ encoding );
11892
+ $ str2 = (string ) self ::substr ($ str2 , 0 , (int ) self ::strlen ($ str1 ), $ encoding );
11893
+ }
11894
+ } else {
11895
+ $ encoding = self ::normalize_encoding ($ encoding , 'UTF-8 ' );
11896
+
11897
+ $ str1 = (string ) self ::substr ($ str1 , $ offset , $ length , $ encoding );
11898
+ $ str2 = (string ) self ::substr ($ str2 , 0 , (int ) self ::strlen ($ str1 ), $ encoding );
11899
+ }
11885
11900
}
11886
11901
11887
11902
if ($ case_insensitivity ) {
0 commit comments