/**
  * @param string $encoding
  */
 protected function __construct($encoding)
 {
     $this->encoding = (string) $encoding;
     if (!isset(self::$HAS_ICONV_EXTENSION) || !isset(self::$HAS_MULTIBYTE_EXTENSION)) {
         if (false !== (self::$HAS_ICONV_EXTENSION = extension_loaded('iconv'))) {
             self::$STRLEN_FUNCTION_NAME = 'iconv_strlen';
         } else {
             if (false !== (self::$HAS_MULTIBYTE_EXTENSION = extension_loaded('mbstring'))) {
                 self::$STRLEN_FUNCTION_NAME = 'mb_strlen';
             }
         }
     }
 }