(PECL runkit >= 0.7.0)
runkit_method_add — Динамически добавляет новый метод в класс
$classname
, string $methodname
, string $args
, string $code
[, int $flags
= RUNKIT_ACC_PUBLIC
[, string $doc_comment
= NULL
]] )$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(12, 4);
?>
Результат выполнения данного примера:
16