runkit_method_add

(PECL runkit >= 0.7.0)

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

Description

runkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT_ACC_PUBLIC [, string $doc_comment = NULL ]] ) : bool
runkit_method_add ( string $classname , string $methodname , Closure $closure [, int $flags = RUNKIT_ACC_PUBLIC [, string $doc_comment = NULL ]] ) : bool

Liste de paramètres

classname

La classe dans laquelle la méthode sera ajoutée

methodname

Le nom de la méthode à ajouter

args

Liste des arguments séparés par des virgules pour la nouvelle méthode créée

code

Le code à être évalué lors que methodname est appelé

closure

Une closure qui définit la fonction.

flags

Le type de méthode à créer, peut être RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED ou RUNKIT_ACC_PRIVATE optionnellement combiné via un OR avec RUNKIT_ACC_STATIC (depuis la versin 1.0.1)

doc_comment

Le commentaire de documentation de la fonction.

Valeurs de retour

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

Historique

Version Description
runkit 1.0.4 Une syntaxe alternative s'attendant a une closure a été ajouté.
runkit 1.0.4 Le paramètre optionel doc_comment a été ajouté.

Exemples

Exemple #1 Exemple avec runkit_method_add()

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

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

// Ajoute une nouvelle méthode publique
runkit_method_add(
    
'Example',
    
'add',
    
'$num1, $num2',
    
'return $num1 + $num2;',
    
RUNKIT_ACC_PUBLIC
);

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

L'exemple ci-dessus va afficher :

16

Voir aussi