Описание тега php-closures

1 ответ

Есть ли веская причина использовать замыкание вместо цикла for в этом случае?

Я использую Laravel 4; рассматриваемые модели расширяются Eloquent, У меня есть отношения между двумя моделями, listing а также photo, Я собираю коллекцию listings которые не имеют никакого соответствующего photos, Eloquent имеет удобный метод для п…
19 фев '14 в 15:53
1 ответ

Есть ли способ обновить переменные области вызова от закрытия php

use Ключевое слово с php closure является довольно понятным способом расширить область действия выбранной переменной до закрытия. Есть ли способ, если нам нужно обновить значение некоторой переменной в области действия вызывающей функции из замыкани…
24 май '15 в 08:20
1 ответ

Сервис Silex - параметр $app или оператор "use ($app)"?

Если я определю службу в приложении Silex, я могу либо ожидать, что основной контейнер (Приложение) будет передан в качестве параметра, либо взять его из текущей области, используя инструкцию "use ($app)". Официальная документация по адресу http://s…
1 ответ

Нет поддержки закрытия в PHP 5.3.2-1ubuntu4.2

Я только что понял, что немного PHP работает неправильно на одном сервере, но работает на другом. Оба работают под управлением Ubuntu 10.04 с PHP PHP 5.3.2 (PHP 5.3.2-1ubuntu4.2 с Suhosin-Patch (cli) (сборка: 13 мая 2010 г. 20:03:45)) Я тестирую с п…
09 авг '10 в 12:52
1 ответ

Рефакторинг блоков сравнения / операторов для СУХОГО повышения и снижения уровня CRAP

Я решил сделать небольшой проект вокруг множества классов, которые возвращают генераторы (php 5.5). Основной мотивацией для небольшого проекта было расширение моего путешествия по TDD, возиться с генераторами и иметь пакет, который я мог бы скинуть …
18 окт '13 в 21:31
2 ответа

Php Динамические методы класса

У меня есть массив (свойство класса), в котором хранятся методы PHP (т. Е. Класса "Закрытие"). Именно так. $this->methods[$name]=$action; $action это функция. Когда я пытаюсь вызвать функцию, как $this->methods[$name]()Я не могу получить досту…
29 янв '18 в 11:36
2 ответа

Laravel красноречивый цикл foreach

У меня есть цикл foreach, который проходит через массив и сохраняет данные с помощью eloquent. И это прекрасно работает, когда это так: foreach($questions['questions'] as $question) { $questionObject = Question::create([ 'external_id' => $questio…
09 мар '16 в 17:54
1 ответ

Slim защитить призывников

В Slim Framework есть protect функция, которая оборачивает вызываемые объекты внутри функции (т.е. другой вызываемый объект). Описание в руководстве говорит: Что если вы хотите буквально сохранить замыкание как необработанное значение, а не вызывать…
31 янв '15 в 01:37
1 ответ

PHP: доступ к переменной из класса / метода, оба определены в одном и том же замыкании

Следующий код работает как положено: $b = 42; var_dump("b: " . $b); class A { function foo() { global $b; var_dump("b: " . $b); } } $instance = new A(); $instance->foo(); foo метод может получить доступ $b благодаря global ключевое слово. Однако,…
25 окт '18 в 11:52
0 ответов

Функции закрытия PHP: почему замыкание должно быть анонимной функцией?

Лямбда или анонимная функция - это просто функция без имени. например $lambda = function($a, $b) { echo $a + $b; }; Закрытие - это функция, которая имеет доступ к переменным, не указанным в списке параметров. В PHP 5.3+ эти переменные указываются по…
5 ответов

Разница между лямбда-функцией и замыканием (в PHP)?

Глава 2 "Руководства разработчика по Magento PHP" гласит: Zend Framework 2 использует 100% объектно-ориентированный код и использует большинство новых функций PHP 5.3, а именно пространства имен, позднее статическое связывание, лямбда-функции и замы…
12 ноя '13 в 14:00
1 ответ

Проверка поля на основе другого поля с использованием дополнительной базы данных

У меня есть простая форма, которая содержит два поля, первое поле просто выбор, а второе поле содержит значение, которое необходимо проверить с помощью первого поля. Я нашел похожий вопрос проверки формы Symfony2 на основе двух полей и попытался исп…
24 фев '14 в 21:32
1 ответ

Неожиданное поведение в PHP Altorouter при передаче параметров

Настроить Я получаю доступ к этому URL: <host>/render/z63034/RBLR/GLZB, Мой шаблон URL таков: /render/[a:title]/[a:bpFrom]/[a:bpTo], Мой маршрут добавляется так: $router->map("GET", "/render/[a:title]/[a:bpFrom]/[a:bpTo]", function ($params…
08 фев '16 в 15:01
1 ответ

Команды Laravel, Pthreads и Закрытие

Необходимо выполнить конкретный процесс несколькими потоками. Я узнал о расширении для php - pthreads. Например, простой сценарий вне Laravel работает отлично, и мне понравились результаты. Я решил переехать в Ларавел и столкнулся с проблемой. Конеч…
13 окт '16 в 09:45
1 ответ

Фабричные классы против замыканий в Zend Framework 2

Лучше ли использовать фабричные классы или замыкания в Zend Framework 2 и почему? Я знаю, что замыкания не могут быть сериализованы, но если вы вернете их из Module#getServiceConfig(), это не повлияет на кэширование остальных ваших данных конфигурац…
20 окт '13 в 15:26
2 ответа

Разве PHP-замыкания не имеют доступа к параметрам функции parnt?

Я писал код для PHP 5.3, и я хотел сделать что-то похожее на код, который я показываю ниже. Я ожидаю, что этот код напечатает 'hellohello', но вместо этого он напечатает 'hello' и ошибку. Похоже, $ внутреннее замыкание не имеет доступа к параметрам …
10 июл '10 в 01:42
1 ответ

Как вы сравниваете классы, которые содержат `Closure`?

Итак, как вы сравниваете классы, которые содержат Closure? Похоже, вы не можете. class a { protected $whatever; function __construct() { $this->whatever = function() {}; } } $b = new a(); $c = new a(); var_dump( $b == $c ); //false
09 апр '15 в 15:38
2 ответа

Как проверить закрытие в php?

У меня есть функция, которая проходит Закрытие. Я хочу узнать название метода, по которому происходит замыкание. Когда я вызываю print_r, он выводит это: Closure Object ( [static] => Array ( [listener] => Event_Subscriber_Calq@vendor_product_c…
06 май '15 в 11:35
1 ответ

Параллельный запрос cURL с обратным вызовом WRITEFUNCTION

Я пытаюсь ограничить свои ответы cURL, как предлагается в этих сообщениях: Получить частичную веб-страницу, и PHP CURLOPT_WRITEFUNCTION, похоже, не работает. Идея состоит в том, чтобы ограничить ответ 4000 символами, как указано в функции обратного …
09 апр '13 в 15:35
1 ответ

Рефакторинг замыканий / анонимных функций в PHP

Можно ли реорганизовать анонимную функцию из кода следующим образом: function foo($path, $callback) { $callback(); } $app = array('a', 'b', 'c'); foo('vehicle/:id', function() use ($app) { echo $app[0]; }); Я попробовал это, но ничего не повторилось…
22 июл '14 в 08:39