(PECL runkit7 >= Unknown)
runkit7_method_redefine — Change dynamiquement le code de la méthode donnée
class_nameLa classe dans laquelle redéfinir la méthode
method_nameLe nom de la méthode à redéfinir
argument_listLa liste des arguments séparés par des virgules pour la méthode redéfinie
code
Le nouveau code à évaluer lorsque method_name
est appelé
closureUne closure qui définit la méthode.
flags
La méthode redéfinie peut être
RUNKIT7_ACC_PUBLIC,
RUNKIT7_ACC_PROTECTED ou
RUNKIT7_ACC_PRIVATE optionnellement combiné via une opération bit à bit OU avec
RUNKIT7_ACC_STATIC
doc_commentLe commentaire de documentation de la méthode.
return_typeLe type de retour de la méthode.
is_strict
Si la méthode se comporte comme si elle était déclarée dans un fichier avec strict_types=1
Exemple #1 Exemple de runkit7_method_redefine()
<?php
class Example {
function foo() {
return "foo!\n";
}
}
// créer un objet Example
$e = new Example();
// affiche Example::foo() (avant la redéfinition)
echo "Before: " . $e->foo();
// Redéfinit la méthode 'foo'
runkit7_method_redefine(
'Example',
'foo',
'',
'return "bar!\n";',
RUNKIT7_ACC_PUBLIC
);
// affiche Example::foo() (après la redéfinition)
echo "After: " . $e->foo();
?>L'exemple ci-dessus va afficher :
Before: foo! After: bar!