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

Использование статического и phpunit в замыкании причин: Сериализация «Закрытие» не допускается

Я пытаюсь создать экземпляр и запустить PHPUnitTest из закрытия, но я продолжаю получать это сообщение: mytest :: authenticate_test Исключение: Сериализация «Закрытие» не допускается Он работает вне закрытия без каких-либо проблем, а маршрут управляется Aura Router. class mytest extends TestCase { public function authenticate_test() { // … } } $runner = 'PHPUnit_TextUI_TestRunner'; $suite = new PHPUnit_Framework_TestSuite('PHPUnit'); […]

Laravel 4 – Класс контейнера: функция распределения и закрытия

У меня есть следующий вопрос к обсуждаемому здесь: путаница основного метода Laravel Я в той же ситуации, что и driechel (автор вопроса выше), был до этого, в настоящее время привык к Laravel 4 FW и изучает ядро. Хотя дается точный ответ, я до сих пор не понимаю логики и того, что происходит под капотом. Поэтому […]

В чем разница между параметрами закрытия и ключевым словом «use»?

Это меня очень смутило, и я не могу найти ответа на этот вопрос. Ясное и простое разъяснение было бы неплохо.

Анонимные функции в ловушках WordPress

Ключи WordPress можно использовать двумя способами: используя имя функции обратного вызова и соответствующую функцию add_action( 'action_name', 'callback_function_name' ); function callback_function_name() { // do something } использование анонимной функции (закрытие) add_action( 'action_name', function() { // do something } ); Есть ли разница в WordPress, какой способ использовать? Что предпочтительнее и почему?

Использовать переменные внутри анонимной функции, которая определяется где-то еще

При использовании анонимных функций в PHP вы можете легко использовать переменные из-за пределов своей области, используя ключевое слово use() . В моем случае анонимные функции уже определены где-то, но вызываются позже (в другом месте) в классе. Следующий фрагмент кода иллюстрирует идею: <?php $bla = function ( $var1 ) use ($arg) { echo $var1; }; class […]

Закрытие PHP и неявная глобальная переменная

Есть ли способ, чтобы можно было неявно объявлять переменные верхнего уровня глобальными для использования в закрытии? Например, если вы работаете с таким кодом: $a = 0; //A TOP-LEVEL VARIABLE Alpha::create('myAlpha') ->bind(DataSingleton::getInstance() ->query('c') ) ->addBeta('myBeta', function($obj){ $obj->bind(DataSingleton::getInstance() ->query('d') ) ->addGamma('myGamma', function($obj){ $obj->bind(DataSingleton::getInstance() ->query('a') ) ->addDelta('myDelta', function($obj){ $obj->bind(DataSingleton::getInstance() ->query('b') ); }); }) ->addGamma('myGamma', function($obj){ $a++; //OUT OF […]

Закрытие или создание_функции в PHP

Я принял решение использовать блокировки для своих обратных вызовов вместо create_function и как таковые поддерживать только PHP> 5.3 в основном из-за повышенной отладки, а также потому, что я предположил (что это говорит о допущении?), Что накладные расходы on- компиляция « create_function в моей ситуации могла бы компенсировать любые дополнительные сравнения и такие, которые должны были […]

Зачем использовать анонимную функцию?

Возможный дубликат: Как вы используете анонимные функции в PHP? Почему я должен использовать анонимную функцию? Я имею в виду, что это за реальная сделка? Я просто не понимаю. Я имею в виду, вы используете функцию, чтобы сделать код более чистым или использовать его более одного раза. Но анонимные функции просто не выполняют ни первого, ни […]

Анонимные рекурсивные функции PHP

Возможно ли иметь функцию PHP, которая является как рекурсивной, так и анонимной? Это моя попытка заставить его работать, но он не переходит в имя функции. $factorial = function( $n ) use ( $factorial ) { if( $n <= 1 ) return 1; return $factorial( $n – 1 ) * $n; }; print $factorial( 5 ); […]

Использовать ключевое слово в функциях – PHP

Возможный дубликат: В Php 5.3.0 что такое функция «Использовать» идентификатор? Должен ли здравомыслящий программист использовать его? Я изучал Closures в PHP, и это привлекло мое внимание: public function getTotal($tax) { $total = 0.00; $callback = function ($quantity, $product) use ($tax, &$total) { $pricePerItem = constant(__CLASS__ . "::PRICE_" . strtoupper($product)); $total += ($pricePerItem * $quantity) * […]