runkit7_method_redefine

(PECL runkit7 >= Unknown)

runkit7_method_redefineAltera dinamicamente o código do método fornecido

Descrição

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
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

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top