If you creates methods by using classkit_method_add(), they are not visible in get_class_methods().
class A
{
public function foo()
{
return "foo!\n";
}
}
classkit_method_redefine('A','bar','','return "bar !\n";',CLASSKIT_ACC_PUBLIC);
print_r(get_class_methods('A'));
// writes only "foo"
classkit_method_add
(PECL classkit >= 0.1)
classkit_method_add — Adiciona dinamicamente um método a uma classe
Descrição
Esta função é EXPERIMENTAL. O comportamento desta função, seu nome, incluindo toda documentação pode ser modificado sem aviso em futuras versões do PHP. Esta função deve ser usada por sua própria conta e risco.
Parâmetros
- classname
-
Classe que receberá o método
- methodname
-
Nome do método a ser adicionado
- args
-
Parâmetros do método, para mais de um parâmetro deve-se separa-los por ',' (virgula)
- code
-
Código a ser executado quando methodname for chamado.
- flags
-
Tipo do método, pode ser: CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED or CLASSKIT_ACC_PRIVATE
Nota:
Este parâmetro somente é usado na versão 5 ou superior, versão anteriores a 5 os métodos sempre são public.
Valor Retornado
Retorna TRUE em caso de sucesso ou FALSE em falhas.
Exemplos
Exemplo #1 classkit_method_add() example
<?php
class Example {
function foo() {
echo "foo!\n";
}
}
// create an Example object
$e = new Example();
// Add a new public method
classkit_method_add(
'Example',
'add',
'$num1, $num2',
'return $num1 + $num2;',
CLASSKIT_ACC_PUBLIC
);
// add 12 + 4
echo $e->add(12, 4);
?>
O exemplo acima irá imprimir:
16
Veja Também
- classkit_method_copy() - Copia um método de uma classe para a outra
- classkit_method_redefine() - Muda dinâmicamente o corpo do método
- classkit_method_remove() - Remove dinamicamente um método da classe
- classkit_method_rename() - Muda dinamicamente o nome de um método
- create_function() - Cria uma função anônima (lambda-style)
classkit_method_add
03-Apr-2008 06:54

classkit_import