Ваш пример не работа, но близко. Посмотрите на этот вариант:
<?php
$isItTrue = function($key, $array) {
return array_key_exists($key, $array);
};
$input = [
'a' => 0,
'foobar' => 1,
'b' => 2
];
var_dump($isItTrue('foobar', $input));
var_dump($isItTrue('nono', $input));
Выход:
bool(true)
bool(false)
Очевидно, что вы можете непосредственно использовать функцию array_key_exists()
для этого, но это не главное. Это просто используется в качестве примера здесь ...
Вы не будете реализовывать небольшие вспомогательные функции, если в php нет готовых к использованию функций утилиты. Хотя php предлагает реальное богатство такой функции, очевидно, что он должен быть ограниченным. Анонимные функции не решат эту потребность, это не то, для чего они предназначены. Их власть лежит в другом месте: вы можете определить несколько и передать их как «черные ящики» туда, где вы хотите, чтобы они использовались. Это означает, что среда выполнения не должна знать, какая функция выполнена. Ему не нужно ссылаться непосредственно на него. Ему не нужно знать имя функции.
Типичным примером может быть каталог чего-то, может быть, «функции», который также предлагает «функцию проверки». Во время выполнения код с использованием функции не интересует, какую функцию проверки использовать. Он использует каталог, там определенная функция определена, которая используется для проверки. Другая форма инкапсуляции кода у ООП, если вы так выразились.
Ну, хотя бы синтаксис функции должен быть действительным ... – arkascha
Что вы хотите получить? Ваш пример не завершен. Если вы просто хотите проверить некоторые значения в массиве, то и циклы, и анонимные функции являются избыточными. –
Я знаю, что код выше не работает, я пытался проиллюстрировать то, что я хотел бы сделать – Chud37