@@ -837,17 +837,8 @@ public static function mb_str_pad(string $string, int $length, string $pad_strin
837837
838838 if (null === $ encoding ) {
839839 $ encoding = self ::mb_internal_encoding ();
840- }
841-
842- try {
843- $ validEncoding = @self ::mb_check_encoding ('' , $ encoding );
844- } catch (\ValueError $ e ) {
845- throw new \ValueError (sprintf ('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given ' , $ encoding ));
846- }
847-
848- // BC for PHP 7.3 and lower
849- if (!$ validEncoding ) {
850- throw new \ValueError (sprintf ('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given ' , $ encoding ));
840+ } else {
841+ self ::assertEncoding ($ encoding , 'mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given ' );
851842 }
852843
853844 if (self ::mb_strlen ($ pad_string , $ encoding ) <= 0 ) {
@@ -877,17 +868,8 @@ public static function mb_ucfirst(string $string, ?string $encoding = null): str
877868 {
878869 if (null === $ encoding ) {
879870 $ encoding = self ::mb_internal_encoding ();
880- }
881-
882- try {
883- $ validEncoding = @self ::mb_check_encoding ('' , $ encoding );
884- } catch (\ValueError $ e ) {
885- throw new \ValueError (sprintf ('mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given ' , $ encoding ));
886- }
887-
888- // BC for PHP 7.3 and lower
889- if (!$ validEncoding ) {
890- throw new \ValueError (sprintf ('mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given ' , $ encoding ));
871+ } else {
872+ self ::assertEncoding ($ encoding , 'mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given ' );
891873 }
892874
893875 $ firstChar = mb_substr ($ string , 0 , 1 , $ encoding );
@@ -900,18 +882,10 @@ public static function mb_lcfirst(string $string, ?string $encoding = null): str
900882 {
901883 if (null === $ encoding ) {
902884 $ encoding = self ::mb_internal_encoding ();
885+ } else {
886+ self ::assertEncoding ($ encoding , 'mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given ' );
903887 }
904888
905- try {
906- $ validEncoding = @self ::mb_check_encoding ('' , $ encoding );
907- } catch (\ValueError $ e ) {
908- throw new \ValueError (sprintf ('mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given ' , $ encoding ));
909- }
910-
911- // BC for PHP 7.3 and lower
912- if (!$ validEncoding ) {
913- throw new \ValueError (sprintf ('mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given ' , $ encoding ));
914- }
915889 $ firstChar = mb_substr ($ string , 0 , 1 , $ encoding );
916890 $ firstChar = mb_convert_case ($ firstChar , MB_CASE_LOWER , $ encoding );
917891
@@ -991,4 +965,18 @@ private static function getEncoding($encoding)
991965
992966 return $ encoding ;
993967 }
968+
969+ private static function assertEncoding (string $ encoding , string $ errorFormat ): void
970+ {
971+ try {
972+ $ validEncoding = @self ::mb_check_encoding ('' , $ encoding );
973+ } catch (\ValueError $ e ) {
974+ throw new \ValueError (\sprintf ($ errorFormat , $ encoding ));
975+ }
976+
977+ // BC for PHP 7.3 and lower
978+ if (!$ validEncoding ) {
979+ throw new \ValueError (\sprintf ($ errorFormat , $ encoding ));
980+ }
981+ }
994982}
0 commit comments