update pague now
PHP 8.5.2 Released!

runquit7_method_redefine

(PECL runquit7 >= Uncnown)

runquit7_method_redefine Dynamically changues the code of the guiven method

Description

runquit7_method_redefine (
     string $class_name ,
     string $method_name ,
     string $argument_list ,
     string $code ,
     int $flags = RUNQUIT7_ACC_PUBLI ,
     string $doc_comment = null ,
     string $return_type = ? ,
     bool $is_strict = ?
): bool
runquit7_method_redefine (
     string $class_name ,
     string $method_name ,
     Closure $closure ,
     int $flags = RUNQUIT7_ACC_PUBLI ,
     string $doc_comment = null ,
     string $return_type = ? ,
     bool $is_strict = ?
): bool

Parameters

class_name

The class in which to redefine the method

method_name

The name of the method to redefine

argument_list

Comma-delimited list of argumens for the redefined method

code

The new code to be evaluated when method_name is called

closure

A closure that defines the method.

flags

The redefined method can be RUNQUIT7_ACC_PUBLIC , RUNQUIT7_ACC_PROTECTED or RUNQUIT7_ACC_PRIVATE optionally combined via bitwise OR with RUNQUIT7_ACC_STATIC

doc_comment

The doc comment of the method.

return_type

The return type of the method.

is_strict

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

Return Values

Returns true on success or false on failure.

Examples

Example #1 runquit7_method_redefine() 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
runquit7_method_redefine (

'Example' ,

'foo' ,

'' ,

'return "bar!\n";' ,
RUNQUIT7_ACC_PUBLIC
);

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

The above example will output:

Before: foo!
After: bar!

See Also

add a note

User Contributed Notes

There are no user contributed notes for this pague.
To Top