runkit
PHP Manual

runkit_method_add

(PECL runkit >= 0.7.0)

runkit_method_addДинамически добавляет новый метод в класс

Описание

bool 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 ]] )

Список параметров

classname

Класс, в который будет добавлен метод

methodname

Имя добавляемого метода

args

Список параметров, принимаемых методом, через запятую

code

Код нового метода, который будет выполняться при вызове methodname

closure

Функция определяющая замыкание (closure).

flags

Создаваемый метод может быть RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED или RUNKIT_ACC_PRIVATE опционально в комбинации через побитовое ИЛИ с RUNKIT_ACC_STATIC (начиная с версии 1.0.1)

Замечание:

Этот параметр используется только в PHP 5, потому что в предыдущих версиях все методы являлись публичными.

doc_comment

Документирующий комментарий к функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия Описание
runkit 1.0.4 Добавлен альтернативный синтаксис с использованием замыканий (closure).
runkit 1.0.4 Был добавлен необязательный параметр doc_comment.

Примеры

Пример #1 Пример runkit_method_add()

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

// создаем экземпляр Example
$e = new Example();

// добавляем новый публичный метод
runkit_method_add(
    
'Example',
    
'add',
    
'$num1, $num2',
    
'return $num1 + $num2;',
    
RUNKIT_ACC_PUBLIC
);

// вычисляем 12 + 4
echo $e->add(124);
?>

Результат выполнения данного примера:

16

Смотрите также


runkit
PHP Manual