@by_steris

Как исправить create_function на php 8?

На сайте был установлен модуль и при обновлении сайта до php 8.0 он перестал работать
Проблема из-за удаленной функции в версии php 8.0 create_function

Есть вот такая строка с этой функцией:
array_walk_recursive($arConfig, create_function('&$n, $k', 'if($n=="true"){$n=true;}elseif($n=="false"){$n=false;}'));


Как ее можно переписать под реалии php 8 ?
  • Вопрос задан
  • 201 просмотр
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
array_walk_recursive(
    $arConfig,
    static function (&$n)
    {
        $n = match($n) {
            "true" => true,
            "false" => false,
            default => $n,
        };
    },
);
Ответ написан
Комментировать
@by_steris Автор вопроса
Нашел в этом файле еще 2 таких функций
$arStoreKeys = array_unique(array_map(create_function('$n', 'return preg_replace("/^find_el_catalog_store(\d+)_.*$/", "$1", $n);'), $arStoreKeys));


$arPriceKeys = array_unique(array_map(create_function('$n', 'return preg_replace("/^find_el_catalog_price_(\d+)$/", "$1", $n);'), $arPriceKeys));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы