update page now

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

adicionar nota

Notas de Usuários

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