Articles of anonymous function

ParallelCurl com CURLOPT_WRITEFUNCTION

Estou tentando usar o ParallelCurl com um retorno de chamada quando o CURL recebe dados do servidor ao qual ele está conectado. Aqui está o código que eu tenho atualmente: function request_finished($content, $url, $ch, $user_data) { echo “Request Finished: “, $content, “\n”; } $pc=new ParallelCurl(); $servers=Server::loadNewAllFromDB(); //Returns an array of ‘Server’ objects which store connection […]

Uso de estática e phpunit em causas de fechamento: a serialização de ‘fechamento’ não é permitida

Estou tentando instanciar e iniciar o PHPUnitTest a partir de um fechamento, mas continuo recebendo esta mensagem: mytest :: authenticate_test Exceção: Serialização de ‘Encerramento’ não é permitido Funciona fora de um fechamento sem problemas e a rota é gerenciada pelo Roteador Aura. class mytest extends TestCase { public function authenticate_test() { // … } } […]

Acessando as variables ​​de uma Função Anônima do PHP

Eu tenho a seguinte class com variables ​​estáticas. Como posso acessar as funções estáticas de uma class a partir de uma function PHP anônima? class MyClass { public static function MyFunction(mylocalparam){ MyStaticClass:MyStaticMethod(function(myparam) use(mylocalparam){ MyClass::MyFunction2(mylocalparam); }); } private static function MyFunction2(someobject){ } } Estou tendo problemas para acessar a function “MyFunction2” da class anônima. Você poderia […]

Como passar o contexto do object a uma function anônima?

Existe uma maneira de passar o contexto do object a uma function anônima sem passar $this como um argumento? class Foo { function bar() { $this->baz = 2; # Fatal error: Using $this when not in object context $echo_baz = function() { echo $this->baz; }; $echo_baz(); } } $f = new Foo(); $f->bar();

Declarando uma function anônima dentro do novo stdClass

Apenas me perguntando por que algo assim não funciona: 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]; } Chamando-o como echo $class->address(‘name’)->city(‘Class’) deve apenas ecoar a Class , no entanto, eu começo um Fatal error: Call to undefined […]

Break array_walk da function anônima

Existe uma maneira de parar um array_walk de dentro da function anônima? Aqui está um código de exemplo (que funciona) para mostrar o que quero dizer, que verifica se uma matriz possui apenas valores numéricos. $valid = true; array_walk($parent, function ($value) use (&$valid) { if (!is_numeric($value)) { $valid = false; } }); return $valid ? […]

Objetos de fechamento dentro de arrays antes do PHP 5.3

Eu sei que é possível fazer o seguinte com o PHP 5.3 (funções anônimas), mas existe uma alternativa similar na versão anterior do PHP (pré-5.3)? $exampleArray = array( ‘func’ => function() { echo ‘this is an example’; } É possível fazer isso com __call ou typecasting a function como um (object) primeiro? Além disso, tentei […]

Chamando funções anônimas definidas como variables ​​de object em php

Eu tenho o código php como: class Foo { public $anonFunction; public function __construct() { $this->anonFunction = function() { echo “called”; } } } $foo = new Foo(); //First method $bar = $foo->anonFunction(); $bar(); //Second method call_user_func($foo->anonFunction); //Third method that doesn’t work $foo->anonFunction(); Existe uma maneira em php que eu possa usar o terceiro método […]

Laravel 4 – Container class: compartilha function e lógica de encerramento

Eu tenho uma questão de seguimento para o assunto discutido aqui: confusão do método principal Laravel Eu estou na mesma situação que o driechel (autor da pergunta acima) já foi antes, atualmente se acostumando com Laravel 4 FW e examinando o núcleo. Embora uma resposta precisa tenha sido dada, ainda não entendo a lógica e […]

Qual a diferença entre os parâmetros de fechamento e a palavra-chave ‘use’?

Isso me deixou muito confuso e não consigo encontrar uma resposta a essa pergunta. Um esclarecimento claro e simples seria bom.