PHP Doku:: Replace a function definition with a new implementation - function.runkit-function-redefine.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDas Verhalten von PHP beeinflussenrunkitrunkit Funktionenrunkit_function_redefine

Ein Service von Reinhard Neidl - Webprogrammierung.

runkit Funktionen

<<runkit_function_copy

runkit_function_remove>>

runkit_function_redefine

(PECL runkit >= 0.7.0)

runkit_function_redefine Replace a function definition with a new implementation

Beschreibung

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

Hinweis: Normalerweise können nur benutzerdefinierte Funktionen gelöscht, umbenannt oder modifiziert werden. Wenn Sie auch interne Funktionen übersteuern wollen, müssen Sie runkit.internal_override in Ihrer php.ini aktivieren.

Parameter-Liste

funcname

Name of function to redefine

arglist

New list of arguments to be accepted by function

code

New code implementation

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

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

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Original Testme Implementation
New Testme Implementation

Siehe auch


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
corentin dot delorme at linagora dot com
5.09.2007 15:04
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');

?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)