PHP.nl

runkit7_method_redefine

runkit7_method_redefine

Dynamically changes the code of the given method

bool **runkit7_method_redefine** string $class_name string $method_name string $argument_list string $code int $flags string $doc_comment string $return_type bool $is_strict
bool **runkit7_method_redefine** string $class_name string $method_name Closure $closure int $flags string $doc_comment string $return_type bool $is_strict

class_nameThe class in which to redefine the method

method_nameThe name of the method to redefine

argument_listComma-delimited list of arguments for the redefined method

code The new code to be evaluated when is called method_name

closure A that defines the method. closure

flags The redefined method can be , or optionally combined via bitwise OR with

  `RUNKIT7_ACC_PUBLIC``RUNKIT7_ACC_PROTECTED``RUNKIT7_ACC_PRIVATE``RUNKIT7_ACC_STATIC`

doc_commentThe doc comment of the method.

return_typeThe return type of the method.

is_strict Whether the method behaves as if it was declared in a file with . strict_types=1

return.success

Voorbeeld: example

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

// create an Example object
$e = new Example();

// output Example::foo() (before redefine)
echo "Before: " . $e->foo();

// Redefine the 'foo' method
runkit7_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT7_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>
Before: foo!
After: bar!

runkit7_method_add``runkit7_method_copy``runkit7_method_remove``runkit7_method_rename``runkit7_function_redefine