Как хранить функцию в массиве?

В PHP функции являются объектами первого класса, что означает, что их можно сохранить и передавать как значения. Интересно, что функцию можно сохранить внутри массива в качестве элемента.

Для хранения функции в массиве вы можете использовать одну из следующих двух техник.

1. Именованные функции:

function myFunction() {
    echo "Hello, World!";
}

$functionArray = array('myFunction');

// Вызов функции из массива
$functionArray[0](); // Выведет "Hello, World!"

В этом примере мы создали функцию с именем myFunction. Затем мы создали массив $functionArray и поместили в него имя функции. После этого мы можем вызвать функцию, используя индекс элемента массива, как если бы это было имя функции. Таким образом, $functionArray[0](); вызывает myFunction();.

2. Анонимные функции (замыкания):

$myFunction = function() {
    echo "Hello, World!";
};

$functionArray = array($myFunction);

// Вызов функции из массива
$functionArray[0](); // Выведет "Hello, World!"

В этом примере мы создали анонимную функцию с помощью выражения function() { ... } и сохранили ее в переменной $myFunction. Затем мы создали массив $functionArray и поместили в него эту анонимную функцию. Также, как и с именованными функциями, мы можем вызвать функцию из массива, используя индекс элемента массива, как если бы это было имя функции.

Обратите внимание, что при использовании анонимных функций для создания замыканий, важно учитывать область видимости переменных, используемых внутри функции.