Как убрать анонимность функции?

342
15 мая 2017, 01:43

Подскажите, пожалуйста, после переноса сайта на сервер с php 4.2 стала вылезать ошибка в синтаксисе: syntax error, unexpected T_FUNCTION, expecting ')'

Понял, что это из-за анонимной функции, но как правильно переписать код не получается.

Сейчас так:

        $dataAttributes = array_map(function($value, $key) {
        return $key . "='" . (str_replace("'", '"', $value)) . "'";
    }, array_values($attributes), array_keys($attributes));
Answer 1

Несколько странно начинать изучать программирование с достаточно древних версий php. Данной версии, уже, кажется, больше 15 лет. В 2004м году уже вышел пхп 5, а 4й версия появилась в 2000-м. Но в целом, если вы пользуетесь win98 и Internet Explorer 6, то PHP4 отлично дополнит эту компанию.

Для решения конкретно вашего вопроса, можете либо переписать задачу с использованием простого цикла foreach, либо по-старинке передать в array_map имя функции, вместо реализации:

function map($value, $key){
    return $key . "='" . (str_replace("'", '"', $value)) . "'";
}
$test = array_map("map", array_values($attributes), array_keys($attributes))

То есть из анонимной функции мы сделали именованную.

Второй же вариант, который, наверное, будет проще, и даже уместнее - обычный цикл по массиву:

$test2 = array();
foreach($attributes as $k=>$value){
    $test2[] = $k."=".(str_replace("'", '"', $value)) . "'";
}
READ ALSO
Проверить на существование записи БД

Проверить на существование записи БД

Мне нужно проверить на существование записи в БД

283
Не отображается pdf файл

Не отображается pdf файл

Не отображается pdf файл, хотя передаю в header content-type pdf

217
yii2 реализация user

yii2 реализация user

Не могу понять как решить задачу Yii2 с rbac

366