Articles of Закрытие

вернуть значение от закрытия к основному методу

У меня есть закрытие следующим образом: public function create(){ DB::transaction(function(){ return 'function called' }); как я могу вернуть «функцию, называемую» из create ?

Yii2 закрыть сайт и настроить

У меня есть базовое приложение Yii2, и я решил создать механизм закрытия веб-сайта, такой как те, что были найдены в CMS. Я config/web.php следующие изменения в config/web.php : $config = [ …… ]; if ($params['closeSite']){ return call_user_func(function(){ echo file_get_contents('../closed.html'); die(); }); } return $config; В приведенном выше фрагменте я использовал последнюю строку в web/index.php которая […]

Предоставление функции закрытия PHP для PHP 5.2

Следующая функция работает в PHP> 5.3, но ошибки в старых версиях. Как я могу изменить это, чтобы сделать его 5.2 безопасным? function _iniloader_get_dirs($dir) { $dirs = array_filter(scandir($dir), function ($item) use ($dir) { return (is_dir($dir.'/'.$item) && $item != "." && $item != ".."); }); // Use array_values to reset the array keys: return array_values($dirs); } Ошибка […]

Закрытие PHP: не удается записать файлы?

Я использую класс журнала для хранения сообщений во время выполнения, а затем он должен записывать эти сообщения в файл при завершении работы (с помощью register_shutdown_function). Но по какой-то причине я всегда получаю: «file_put_contents не удалось открыть поток: нет такого файла или каталога». Не должно быть проблемой, что файл не существует, file_put_contents должен создать файл. На […]

Могут ли не-анонимные функции в PHP использовать ключевое слово 'use'?

Могут ли не-анонимные функции в PHP использовать ключевое слово 'use'? Или он доступен только для анонимных функций. Могу ли я написать php-файл, подобный этому? // L.php // assume $_texts is in this context.. $_language = null; function L_init($language) use (&$_language) { $_language = $language; } function L($key) use ($_texts, $_language) { $_texts[$_language][$key]; } Таким образом, […]

PHP Закрывает область видимости переменных

Я рассматриваю PHP-пример Closures на http://us1.php.net/manual/en/functions.anonymous.php Он предоставляет пример кода ниже и указывает: Закрытие также может наследовать переменные из родительской области. Любые такие переменные должны быть объявлены в заголовке функции. Наследование переменных из родительской области не совпадает с использованием глобальных переменных. Глобальные переменные существуют в глобальной области, что то же самое независимо от того, какая […]

Закрыты ли блокировки PHP, или я что-то не хватает?

Я читал о новых функциях PHP 5.3, и одной из основных функций является закрытие . Если я не ошибаюсь, разработчики PHP: а) путаные замыкания с анонимными функциями б) блокировки нарушаются в PHP 5.3.1, в которых я тестирую Из того, что википедия говорит, что закрытие – это механизм анонимных функций плюс привязка переменных сферы родительской функции […]

Закрытие PHP как необязательный аргумент функции

Можно ли указать значение аргумента по умолчанию, когда аргумент является закрытием PHP? Подобно: public function getCollection($filter = function($e) { return $e; }) { // Stuff } Я что-то пропустил (может быть, другой синтаксис?), Или это вообще невозможно? Конечно, я знаю, что могу сделать: public function getCollection($filter = null) { $filter = is_callable($filter) ? $filter : […]

Код вложения при закрытии PHP

У меня уже установленное закрытие, и я хочу вводить код внутри, когда я его выполняю. Вот пример: $predefined = "print 'my predefined injected code<br />';"; $closure = function () { print 'hello<br />'; }; call_user_func_array($closure, array()); // output : hello Я хочу смешать 2 кода: предопределенный и закрывающий. После модификации я хочу, чтобы мое закрытие […]

Зачем использовать замыкание для назначения вместо прямого назначения значения ключу?

Я смотрел это видео, и в 7:10 он добавляет зависимость db и использует закрытие для назначения значения. Мой вопрос, почему бы не просто использовать прямое назначение вместо этого, я имею в виду, что не делаю этого: $container['db'] = $capsule; эквивалент этого: $container['db'] = function ($container) use ($capsule) { return $capsule; } Если нет, какая разница […]