una otro otra method llamar instanciar funcion desde dentro closure clase call_user_func_array call_user_func array php

otro - PHP Llame a un método de instancia con call_user_func dentro de la misma clase



llamar funcion php desde otro php (3)

Estoy tratando de usar call_user_func para llamar a un método desde otro método del mismo objeto, por ejemplo

class MyClass { public function __construct() { $this->foo(''bar''); } public function foo($method) { return call_user_func(array($this, $method), ''Hello World''); } public function bar($message) { echo $message; } }

new MyClass; Debería devolver ''Hello World'' ...

¿Alguien sabe la forma correcta de lograr esto?

¡Muchas gracias!


nueva MyClass; Debería devolver ''Hello World'' ...

Un constructor no devuelve nada.


El código que has publicado debería funcionar bien. Una alternativa sería usar "funciones variables" como esta:

public function foo($method) { //safety first - you might not need this if the $method //parameter is tightly controlled.... if (method_exists($this, $method)) { return $this->$method(''Hello World''); } else { //oh dear - handle this situation in whatever way //is appropriate return null; } }


Esto funciona para mí:

<?php class MyClass { public function __construct() { $this->foo(''bar''); } public function foo($method) { return call_user_func(array($this, $method), ''Hello World''); } public function bar($message) { echo $message; } } $mc = new MyClass(); ?>

Esto se imprime:

wraith:Downloads mwilliamson$ php userfunc_test.php Hello World