(PECL runkit7 >= Unknown)
runkit7_method_redefine — Altera dinamicamente o código do método fornecido
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
.
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!