функция PHP внутри массива

Я пытаюсь сохранить функцию внутри массива, но он продолжает давать мне это ошибка:

неожиданная «функция» (T_FUNCTION)

Я смотрел в Интернете, но они в основном говорят, что я должен использовать PHP версии 5.3 и выше, в то время как я использую 5.6.21,

Вот мой массив:

       static $Events = array(
'View Page' => array(
'properties' => array(
'previous_event',
'number_view_page',
),
'trigger' => function($foo){
return $foo;
},
),
);

Если кто-нибудь знает, в чем проблема и как ее решить, пожалуйста, помогите мне 🙂

3

Решение

static значения должны быть инициализированы с помощью static /постоянная выражения. К сожалению, анонимные функции не являются «постоянными» для подсчета. Более поздние версии PHP допускают некоторые ограниченные выражения, такие как 2 + 4 (потому что результат всегда постоянен), но не более того. Объявления функций слишком сложны для обработки в static контекст (вы можете добавить функцию в массив впоследствии в любое время вы просто не можете инициализирует это так *).

* Причиной этого ограничения является то, что static объявления обрабатываются на другой фазе синтаксического анализа, чем на этапе выполнения, и эта фаза синтаксического анализа не может обрабатывать ничего, кроме примитивных значений.

3

Другие решения

Попробуйте еще раз с этим (у вас есть 2, слишком много в конце кода и, пожалуйста, удалите статический)

РЕДАКТИРОВАТЬ: добавление функции, чтобы вы могли использовать массив из другого класса.

function $events_func()
{
$events = array(
'View Page' => array(
'properties' => array(
'previous_event',
'number_view_page',
),
'trigger' => function($foo){
return $foo;
}
)
);
return $events;
}
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector