(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