Articles of анонимная функция

Как использовать анонимные функции перед PHP 5.3?

У меня есть класс, который использует функцию анонимной функции 5.3 ( https://github.com/JeffreyWay/Easy-WordPress-Custom-Post-Types/blob/master/jw_custom_posts.php ), но есть проблема, на сервере I не может обновиться до 5.3. Есть ли какое-либо проворное решение, чтобы избавиться от анонимных функций или мне нужно переписать весь класс?

php – доступ к внешнему классу с анонимного обратного вызова

У меня такой код: class Server { private $stopper; public function setStopper() { $this->stopper = TRUE; } public function startServer() { $consumer = new Consumer(); $consumer->onConsume(function($data) { global $consumer; // some processing if( ?? ) { // how to access stopper here?? $consumer->stop(); // also how to access stopServer() here?? } }); $consumer->consume(); } public […]

Объявление анонимной функции в новом stdClass

Просто интересно, почему что-то вроде этого не работает: public function address($name){ if(!isset($this->addresses[$name])){ $address = new stdClass(); $address->city = function($class = '', $style = ''){ return $class; }; $this->addresses[$name] = $address; } return $this->addresses[$name]; } Вызов его как echo $class->address('name')->city('Class') должен просто echo Class , но я получаю Fatal error: Call to undefined method stdClass::city() Я […]

Перерыв array_walk из анонимной функции

Есть ли способ остановить array_walk внутри анонимной функции? Вот пример кода (который работает), чтобы показать, что я имею в виду, который проверяет, имеет ли массив только числовые значения. $valid = true; array_walk($parent, function ($value) use (&$valid) { if (!is_numeric($value)) { $valid = false; } }); return $valid ? 'Valid' : 'Invalid'; Если у меня есть […]

Что замыкают замыкания PHP в операторах IF?

Моя цель – поставить сложную логику в оператор if (). Предположим, у меня есть массив значений, и я собираюсь выполнить немного кода, если все в моем массиве отличное от нуля. Обычно я могу сказать: $valid = true , foreach my array и set $valid = false когда найден нуль. Тогда я запустил бы свой код, […]

Закрытие объектов внутри массивов до PHP 5.3

Я знаю, что можно сделать следующее с PHP 5.3 (анонимные функции), но есть ли аналогичная альтернатива в старой версии PHP (pre-5.3)? $exampleArray = array( 'func' => function() { echo 'this is an example'; } Можно ли это сделать с помощью __call или приведения функции в соответствие функции (объекта) в первую очередь? Кроме того, я попытался […]

Функция PHP use () для области видимости?

Я видел такой код: function($cfg) use ($connections) {} но php.net, похоже, не упоминает эту функцию. Я предполагаю, что это связано с областью, но как?

Анонимная функция для метода объекта

Возможный дубликат: Закрытие вызова, присвоенное объекту напрямую Почему это невозможно в PHP? Я хочу, чтобы создать функцию «на лету» для определенного объекта. $a = 'a'; $tokenMapper->tokenJoinHistories = function($a) { echo $a; }; $tokenMapper->tokenJoinHistories($a);

php Установить анонимную функцию в экземпляре

Я только начинаю с PHP, и мне интересно, есть ли способ добавить анонимную функцию к экземпляру класса. Например, скажем … class A{ public B; } $c = new A(); //This is where I am getting a little confused… //The following wont work $c->B = function(){echo('HelloWorld');}; $c->B(); Я надеюсь, что это повторное использование кода в большом […]

Функция PHP Аноним с array_walk

Я пытаюсь использовать array_walk с анонимной функцией, но всегда получаю ошибку // Parse error: syntax error, unexpected T_FUNCTION in … on line X if(!empty($myArray)) { array_walk($myArray, function(&$value, $key){ // Line X $value = '"'.$value.'"'; // Add quotes }); } Правильный синтаксис файла. Есть предположения?