2011-07-21 14 views

Respuesta

0

Con $obj->foo() llamar a métodos, pero al que desea llamar una propiedad como una función/método. Esto solo confunde al analizador, porque no encontró un método con el nombre foo(), pero no puede esperar que una propiedad sea algo invocable.

call_user_func($tokenMapper->tokenJoinHistories, $a); 

O a ampliar su mapeador como

class Bar { 
    public function __call ($name, $args) { 
    if (isset($this->$name) && is_callable($this->$name)) { 
     return call_user_func_array($this->$name, $args); 
    } else { 
     throw new Exception("Undefined method '$name'"); 
    } 
    } 
} 

(Probablemente hay algunos problemas dentro de este ejemplo de forma rápida por escrito)

2

PHP intenta hacer coincidir un método de instancia llamada "tokenJoinHistories" que no es definido en la clase original

Tienes que hacer en su lugar

$anon_func = $tokenMapper->tokenJoinHistories; 
$anon_func($a); 

Lea la documentación here especialmente la parte de comentarios.

Cuestiones relacionadas