Adiciona dinamicamente um novo método a uma determinada classe

# runkit7_method_add

(PECL runkit7 >= Unknown)

runkit7_method_add — Adiciona dinamicamente um novo método a uma determinada classe

### Descrição

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

### Parâmetros

`class_name`
  A classe à qual este método será adicionado.
`method_name`
  O nome do método a ser adicionado.
`argument_list`
  Lista de argumentos delimitada por vírgulas para o método recém-criado.
`code`
  O código a ser avaliado quando `method_name` é chamado.
`closure`
  Um closure que define o método.
`flags`
  O tipo de método a ser criado pode ser `RUNKIT7_ACC_PUBLIC`, `RUNKIT7_ACC_PROTECTED` ou `RUNKIT7_ACC_PRIVATE`, opcionalmente combinado via OR binário com `RUNKIT7_ACC_STATIC`.
`doc_comment`
  O comentário documental do método.
`return_type`
  O tipo de retorno do método.
`is_strict`
  Informa se o método se comporta como se tivesse sido declarado em um arquivo com `strict_types=1`.

### Valor Retornado

Retorna `true` em caso de sucesso ou `false` em caso de falha.

### Exemplos

Exemplo #1 Exemplo de runkit7_method_add()

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

    // cria um objeto da classe Example
    $e = new Example();

    // Adiciona um novo método público
    runkit7_method_add(
        'Example',
        'add',
        '$num1, $num2',
        'return $num1 + $num2;',
        RUNKIT7_ACC_PUBLIC
    );

    // adiciona 12 + 4
    echo $e->add(12, 4);
    ?>

O exemplo acima produzirá:

    16

### Veja Também

- runkit7_method_copy() - Copia um método de uma classe para outra
- runkit7_method_redefine() - Altera dinamicamente o código do método fornecido
- runkit7_method_remove() - Remove dinamicamente o método fornecido
- runkit7_method_rename() - Altera dinamicamente o nome do método fornecido
- runkit7_function_add() - Adiciona uma nova função, semelhante a create_function

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