Symfony\Polyfill\Mbstring

Mbstring::mb_convert_variables │ public static │ CF7 1.0

Метод класса: Mbstring{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$result = Mbstring::mb_convert_variables( $toEncoding, $fromEncoding, ...$vars );
$toEncoding(обязательный)
.
$fromEncoding(обязательный)
.
...$vars(обязательный) (передается по ссылке — &)
.

Код Mbstring::mb_convert_variables() CF7 6.2.4.1

public static function mb_convert_variables($toEncoding, $fromEncoding, &...$vars)
{
    if (\is_string($fromEncoding) && 2 < \strlen($fromEncoding) && '"' === $fromEncoding[0] && '"' === $fromEncoding[-1]) {
        $fromEncoding = substr($fromEncoding, 1, -1);
    }

    if (80000 <= \PHP_VERSION_ID && null !== $error = self::getConversionError('mb_convert_variables', 1, $toEncoding, $fromEncoding)) {
        throw new \ValueError($error);
    }

    $ok = true;
    foreach ($vars as $i => &$var) {
        $convert = static function (&$v) use (&$ok, $toEncoding, $fromEncoding, $i) {
            if (\is_string($v)) {
                if (false === $v = self::mb_convert_encoding($v, $toEncoding, $fromEncoding)) {
                    $ok = false;
                }
            } elseif (80600 <= \PHP_VERSION_ID && !\is_object($v)) {
                trigger_error(\sprintf('mb_convert_variables(): Argument #%d must be of type string|array|object or only contain entries of type string|array|object, %s given', 3 + $i, strtok(get_debug_type($v), ' ')), \E_USER_WARNING);
            }
        };

        if (\is_array($var)) {
            array_walk_recursive($var, $convert);
        } else {
            $convert($var);
        }
    }
    unset($var);

    return $ok ? $fromEncoding : false;
}