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 — Dynamically adds a new method to a given class
Descrizione
$classname
, string $methodname
, string $args
, string $code
[, int $flags = CLASSKIT_ACC_PUBLIC
] )Questa funzione è SPERIMENTALE. Ovvero, il comportamento di questa funzione, il nome di questa funzione, in definitiva tutto ciò che è documentato qui può cambiare nei futuri rilasci del PHP senza preavviso. Siete avvisati, l'uso di questa funzione è a vostro rischio.
Elenco dei parametri
-
classname -
The class to which this method will be added
-
methodname -
The name of the method to add
-
args -
Comma-delimited list of arguments for the newly-created method
-
code -
The code to be evaluated when
methodnameis called -
flags -
The type of method to create, can be
CLASSKIT_ACC_PUBLIC,CLASSKIT_ACC_PROTECTEDorCLASSKIT_ACC_PRIVATENota:
This parameter is only used as of PHP 5, because, prior to this, all methods were public.
Valori restituiti
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
Esempi
Example #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);
?>
Il precedente esempio visualizzerà:
16
Vedere anche:
- classkit_method_copy() - Copies a method from class to another
- classkit_method_redefine() - Dynamically changes the code of the given method
- classkit_method_remove() - Dynamically removes the given method
- classkit_method_rename() - Dynamically changes the name of the given method
- create_function() - Create an anonymous (lambda-style) function
