runkit_import

(PECL)

runkit_import --  Process a PHP file importing function and class definitions, overwriting where appropriate

说明

bool runkit_import ( string filename [, int flags] )

Similar to include() however any code residing outside of a function or class is simply ignored. Additionally, depending on the value of flags, any functions or classes which already exist in the currently running environment will be automatically overwritten by their new definitions.

参数

filename

Filename to import function and class definitions from

flags

Bitwise OR of the RUNKIT_IMPORT_* family of constants.

返回值

如果成功则返回 TRUE,失败则返回 FALSE


add a note add a note User Contributed Notes
bbisgod [at] gmail [dot] com
30-Nov-2005 03:19
I was experiencing problems using this function on a script. I discovered through trial and error that you CANNOT reload a function (or method of a class) if it has been called (e.g, its present in the debug_backtrace). Also you cannot redeclare a function that is used by set_error_handler.

The reasons are logical, but it took me a good 2 days of debugging to find it, hope this saves someone a headache.
bbisgod [at] gmail [dot] com
30-Nov-2005 02:27
Heres a nice function to reload the whole program, note, requires PHP5.1:

<?
function reload() {
 
$files = get_included_files();
  foreach(
$files as $file) {
   if (
runkit_lint_file($file)) {
    
runkit_import($file);
   } else {
     return
false;
   }
  }
}
?>