dismiss Step into the future! Click here to switch to the beta php.net site
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

runkit_function_remove> <runkit_function_copy
[edit] Last updated: Fri, 28 Jun 2013

view this page in

runkit_function_redefine

(PECL runkit >= 0.7.0)

runkit_function_redefine Replace a function definition with a new implementation

Description

bool runkit_function_redefine ( string $funcname , string $arglist , string $code )

Note: By default, only userspace functions may be removed, renamed, or modified. In order to override internal functions, you must enable the runkit.internal_override setting in php.ini.

Parameters

funcname

Name of function to redefine

arglist

New list of arguments to be accepted by function

code

New code implementation

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example #1 A runkit_function_redefine() example

<?php
function testme() {
  echo 
"Original Testme Implementation\n";
}
testme();
runkit_function_redefine('testme','','echo "New Testme Implementation\n";');
testme();
?>

The above example will output:

Original Testme Implementation
New Testme Implementation

See Also



add a note add a note User Contributed Notes runkit_function_redefine - [2 notes]
up
0
lucato at gmail dot com
1 year ago
Note to users: language constructs (eval, die, exit, isset, unset, echo etc.) which might be confused with functions, cannot be renamed or redefined even with runkit.internal_override.
up
0
corentin dot delorme at linagora dot com
5 years ago
Here is another example with a parameter:

<?php

function hello_world($word) {
  echo
"Original Hello World: $word\n</br>";
}

$helloWorld = 'echo "Redefined Hello World: $word\n</br>";';

hello_world('test1');

runkit_function_redefine('hello_world', '$word', $helloWorld);

hello_world('test2');

?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites