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

# runkit7_method_add

(PECL runkit7 >= Unknown)

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

### Описание

function runkit7_method_add(
string `$class_name`,
string `$method_name`,
string `$argument_list`,
string `$code`,
int `$flags` = RUNKIT7_ACC_PUBLIC,
string `$doc_comment` = `null`,
string `$return_type` = ?,
bool `$is_strict` = ?
): bool
function runkit7_method_add(
string `$class_name`,
string `$method_name`,
Closure `$closure`,
int `$flags` = RUNKIT7_ACC_PUBLIC,
string `$doc_comment` = `null`,
string `$return_type` = ?,
bool `$is_strict` = ?
): bool

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

`class_name`
  Класс, в котором нужно добавить метод.
`method_name`
  Имя метода, который нужно добавить.
`argument_list`
  Разделённый запятыми список аргументов для нового метода.
`code`
  Код, который будет выполняться при вызове `method_name`.
`closure`
  Замыкание (closure), определяющее метод.
`flags`
  Метод может быть `RUNKIT7_ACC_PUBLIC`, `RUNKIT7_ACC_PROTECTED` или `RUNKIT7_ACC_PRIVATE`, и, при необходимости, объединён с помощью побитового ИЛИ с `RUNKIT7_ACC_STATIC`.
`doc_comment`
  Документальный комментарий метода.
`return_type`
  Тип возвращаемого значения метода.
`is_strict`
  Определяет, будет ли метод вести себя так, как если бы он был объявлен в файле с `strict_types=1`.

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

Функция возвращает `true`, если выполнилась успешно, или `false`, если возникла ошибка.

### Примеры

Пример #1 Пример использования runkit7_method_add()

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

    // создание объекта Example
    $e = new Example();

    // добавление нового общедоступного метода
    runkit7_method_add(
        'Example',
        'add',
        '$num1, $num2',
        'return $num1 + $num2;',
        RUNKIT7_ACC_PUBLIC
    );

    // добавление 12 + 4
    echo $e->add(12, 4);
    ?>

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

    16

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

- runkit7_method_copy() - Копирует метод из одного класса в другой
- runkit7_method_redefine() - Динамически изменяет код заданного метода
- runkit7_method_remove() - Динамически удаляет заданный метод
- runkit7_method_rename() - Динамически изменяет имя заданного метода
- runkit7_function_add() - Добавляет новую функцию, функция аналогична create_function

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open