classkit_method_add

(PECL classkit >= 0.1)

classkit_method_addAñade dinámicamente un nuevo método una clase dada

Descripción

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

Esta función ha sido declarada EXPERIMENTAL. Su funcionamiento, nombre y la documentación que le acompaña puede cambiar sin previo aviso en futuras versiones de PHP. Utilícela bajo su propia responsabilidad.

Parámetros

classname

La clase en la que este método será añadido

methodname

El nombre del método a añadir

args

Lista de argumentos separados por coma para el método recién creado

code

El código a ser evaluado cuando methodname es llamado

flags

El tipo de método a crear, puede ser CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED o CLASSKIT_ACC_PRIVATE

Nota:

Este parámetro se usa sólo a partir de PHP 5, ya que, antes de esta versión, todos los métodos eran públicos.

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de classkit_method_add()

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

// crear un objeto de Ejemplo
$e = new Example();

// Añadir un nuevo método público
classkit_method_add(
    
'Ejemplo',
    
'sumar',
    
'$num1, $num2',
    
'return $num1 + $num2;',
    
CLASSKIT_ACC_PUBLIC
);

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

El resultado del ejemplo sería:

16

Ver también

add a note add a note

User Contributed Notes 1 note

up
1
Lester
16 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