Altera dinamicamente o código do método fornecido

# runkit7_method_redefine

(PECL runkit7 >= Unknown)

runkit7_method_redefine — Altera dinamicamente o código do método fornecido

### Descrição

function runkit7_method_redefine(
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_redefine(
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 na qual o método será redefinido.
`method_name`
  O nome do método a ser redefinido.
`argument_list`
  Lista de argumentos delimitada por vírgulas para o método redefinido.
`code`
  O novo código a ser avaliado quando `method_name` for chamado.
`closure`
  Um closure que define o método.
`flags`
  O método redefinido 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 deve se comportar 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_redefine()

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

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

    // exibe Example::foo() (antes da redefinição)
    echo "Antes: " . $e->foo();

    // Redefine o método 'foo'
    runkit7_method_redefine(
        'Example',
        'foo',
        '',
        'return "bar!\n";',
        RUNKIT7_ACC_PUBLIC
    );

    // exibe Example::foo() (depois da redefinição)
    echo "Depois: " . $e->foo();
    ?>

O exemplo acima produzirá:

    Antes: foo!
    Depois: bar!

### Veja Também

- runkit7_method_add() - Adiciona dinamicamente um novo método a uma determinada classe
- runkit7_method_copy() - Copia um método de uma classe para outra
- runkit7_method_remove() - Remove dinamicamente o método fornecido
- runkit7_method_rename() - Altera dinamicamente o nome do método fornecido
- runkit7_function_redefine() - Substitui uma definição de função por uma nova implementação

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