usarías una qué función funciones funcion ellas dónde desventaja cuál anónima anonima php closures anonymous-function

una - php function uses



¿Es posible hacer referencia a una función anónima desde dentro de PHP? (3)

Estoy tratando de hacer algo como lo siguiente:

// assume $f is an arg to the wrapping function $self = $this; $func = function() use($f, $ctx, $self){ $self->remove($func, $ctx); // I want $func to be a reference to this anon function $args = func_get_args(); call_user_func_array($f, $args); };

¿Es posible hacer referencia a la función asignada a $ func con la misma función?


Sí, es posible si use una variable por referencia. Por ejemplo:

$func = function($i) use(&$func) { if ($i <= 0) { return; } echo "Countdown: $i./n"; $func($i - 1); }; $func(3);



sí tu puedes

Vea este ejemplo: http://php.net/manual/en/functions.anonymous.php#105564

Código del ejemplo:

<?php $fib = function($n) use(&$fib) { if($n == 0 || $n == 1) return 1; return $fib($n - 1) + $fib($n - 2); }; echo $fib(2) . "/n"; // 2 $lie = $fib; $fib = function(){die(''error'');};//rewrite $fib variable echo $lie(5); // error because $fib is referenced by closure ?>