PHP Australia Conference 2015

runkit_function_redefine

(PECL runkit >= 0.7.0)

runkit_function_redefine Replace a function definition with a new implementation

Descrizione

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

Nota: Per default, solo le funzioni in userspace possono essere rimosse, rinominate o modificate. Per effettuare l'override delle funzioni interne, si deve abilitare il parametro runkit.internal_override nel file php.ini.

Elenco dei parametri

funcname

Name of function to redefine

arglist

New list of arguments to be accepted by function

code

New code implementation

Valori restituiti

Restituisce TRUE in caso di successo, FALSE in caso di fallimento.

Esempi

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();
?>

Il precedente esempio visualizzerĂ :

Original Testme Implementation
New Testme Implementation

Vedere anche:

add a note add a note

User Contributed Notes 2 notes

up
2
lucato at gmail dot com
2 years 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
1
corentin dot delorme at linagora dot com
7 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');

?>
To Top