In PHP this is called lambda_style or Anonymous , to make the implementation easier to create Auxiliary Class (DinamicMethod), now just have fun :) and test.
Do not try to direct the Database class, the __ call method was not designed to fetch Anonymous within class attributes and yes, so we made the DinamicMethod class.
<?php
class DinamicMethod {
public function __construct() {
#leia sobre create_function http://php.net/manual/pt_BR/function.create-function.php
$this->inserir = create_function('', 'echo "Eu sou Uma funcao anonima";');
$this->deletar = create_function('', 'echo "Eu sou Uma funcao anonima e deleto";');
}
public function __call($metodo, $argumentos) {
#Checa se o objeto ou a classe tem uma propriedade
if (property_exists($this, $metodo)) {
#Verifica se o conteúdo da variável pode ser chamado como função
if (is_callable($this->$metodo)) {
#Chama uma dada função de usuário com um array de parâmetros
return call_user_func_array($this->$metodo, $argumentos);
}
}
}
}
class Database {
public $usuario;
public function __construct() {
#objeto de classe padrão php
$this->usuario = new DinamicMethod();
}
}
$db = new Database();
$db->usuario->deletar();