Fonctions runkit
PHP Manual

runkit_method_redefine

(PECL runkit >= 0.7.0)

runkit_method_redefineChange dynamiquement le code de la méthode donnée

Description

bool runkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT_ACC_PUBLIC ] )

Note: Cette fonction ne peut être utilisée pour manipuler la méthode en cours d'utilisation (ou chaînée).

Liste de paramètres

classname

La classe dans laquelle la méthode sera redéfinie

methodname

Le nom de la méthode à redéfinir

args

Liste d'arguments séparés par des virgules pour la méthode redéfinie

code

Le nouveau code qui sera évalué lorsque methodname sera appelée

flags

La méthode redéfinie peut etre RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED ou RUNKIT_ACC_PRIVATE optionnellement combiné via un OR avec RUNKIT_ACC_STATIC (depuis la version 1.0.1)

Note:

Ce paramètre est utilisé seulement en PHP 5, parce que, avant cette version, toutes les méthodes étaient publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_method_redefine()

<?php
class Example {
    function 
foo() {
        return 
"foo!\n";
    }
}

// Crée un objet Example
$e = new Example();

// Sortie Example::foo() (avant la redéfinition)
echo "Avant : " $e->foo();

// Redéfinition de la méthode 'foo'
runkit_method_redefine(
    
'Example',
    
'foo',
    
'',
    
'return "bar!\n";',
    
RUNKIT_ACC_PUBLIC
);

// Sortie Example::foo() (après la redéfinition)
echo "Après : " $e->foo();
?>

L'exemple ci-dessus va afficher :

Avant : foo!
Après : bar!

Voir aussi


Fonctions runkit
PHP Manual