classkit_method_copy
<<<
classkit_method_redefine classkit_method_remove
>>>

8.10 Fonctions Classkit
8 Référence des fonctions
 Manuel PHP

Introduction
Installation
Configuration à l'exécution
Types de ressources
Constantes pré-définies
classkit_import
classkit_method_add
classkit_method_copy
->classkit_method_redefine
classkit_method_remove
classkit_method_rename

8.10.9 classkit_method_redefine()Change dynamiquement le code de la méthode donnée

[ Exemples avec classkit_method_redefine ]   CVS uniquement

bool  classkit_method_redefine ( string   classname , string   methodname , string   args , string   code , int   flags )
Note

Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Attention

Cette fonction est EXPERIMENTALE . Cela signifie que le comportement de cette fonction, son nom et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

    classname
    La classe dans laquelle la méthode est redéfinie
    methodname
    Le nom de la méthode à redéfinir
    args
    Liste d'arguments séparés par une virgule pour la méthode redéfinie
    code
    Le nouveau code à évaluer lorsque methodname est appelé
    flags
    La méthode redéfinie peut être CLASSKIT_ACC_PUBLIC , CLASSKIT_ACC_PROTECTED ou CLASSKIT_ACC_PRIVATE

    Note

    Ce paramètre est utilisé depuis PHP 5, car avant cette version, toutes les méthodes sont publiques.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple avec classkit_method_redefine

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

// création d'un objet Example
$e = new Example();

// affichage Example::foo() (avant la redéfinission)
echo "Avant : " . $e->foo();

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

// affichage de Example::foo() (après la redéfinission)
echo "Après : " . $e->foo();
?>

<< classkit_method_redefine >>
classkit_method_copy Fonctions Classkit classkit_method_remove