(PECL runkit >= 0.7.0)
runkit_function_redefine — Remplace une définition de fonction avec une nouvelle implémentation
$funcname
, string $arglist
, string $code
[, bool $return_by_reference = NULL
[, string $doc_comment = NULL
]] ) : bool$funcname
, Closure $closure
[, string $doc_comment = NULL
] ) : boolNote: Par défaut, seulement les fonctions définies par l'utilisateur peuvent être supprimées, renommées ou modifiées. Afin de surcharger des fonctions internes, vous devez activer la configuration runkit.internal_override dans le fichier php.ini du système entier.
funcnameNom de la fonction à redéfinir
arglistNouvelle liste d'arguments à être acceptés par la fonction
codeNouvelle implémentation du code
closureUne closure qui définit la fonction.
return_by_referenceSi la fonction devrait retourner par référence.
doc_commentLe commentaire de documentation de la fonction.
Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.
| Version | Description |
|---|---|
| runkit 1.0.4 |
Une syntaxe alternative s'attendant a une closure a été ajouté.
|
| runkit 1.0.4 |
Les paramètres optionels return_by_reference et
doc_comment ont été ajouté.
|
Exemple #1 Exemple avec runkit_function_redefine()
<?php
function testme() {
echo "Implémentation de Testme originale\n";
}
testme();
runkit_function_redefine('testme','','echo "Nouvelle implémentation de Testme\n";');
testme();
?>
L'exemple ci-dessus va afficher :
Implémentation de Testme originale Nouvelle implémentation de Testme