classkit_method_add

(PECL classkit >= 0.1)

classkit_method_addAjoute dynamiquement une nouvelle méthode à une classe donnée

Description

bool classkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags = CLASSKIT_ACC_PUBLIC ] )
Avertissement

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.

Liste de paramètres

classname

La classe où la méthode doit être ajoutée

methodname

Le nom de la méthode à ajouter

args

Liste d'arguments, séparés par des virgules, de la nouvelle méthode créée

code

Le code à exécuter lorsque methodname est appelé

flags

Le type de méthode à créer ; 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 é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 classkit_method_add()

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

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

// Ajout d'une nouvelle méthode publique
classkit_method_add(
    
'Example',
    
'add',
    
'$num1, $num2',
    
'return $num1 + $num2;',
    
CLASSKIT_ACC_PUBLIC
);

// Ajoute 12 + 4
echo $e->add(124);
?>

L'exemple ci-dessus va afficher :

16

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
1
Lester
6 years ago
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"
To Top