Copied from wiki.php.net, last synchronized Oct 13, 2026 11:54 UTC
The topic of supporting function autoloading was brought up many times in the past, this RFC introduces a potential implementation which would be consistent with what we have for autoloading classes.
The suggested change would be pretty straightforward and BC compatible:
Notice that currently only functions are proposed, but we could implement autoloading other tokens (SPL_AUTOLOAD_CONSTANT, etc.) with this interface.
<?php
// old behavior
spl_autoload_register(
function ($name) {
// include the class definition
/* ... */
}
);
// autoload functions
spl_autoload_register(
function ($name) {
// include the function definition
/* ... */
},
true,
false,
SPL_AUTOLOAD_FUNCTION
);
// autoload mixed
spl_autoload_register(
function ($name, $type) {
switch($type){
case SPL_AUTOLOAD_CLASS:
/* ... */
break;
case SPL_AUTOLOAD_FUNCTION:
/* ... */
break;
}
},
true,
false,
SPL_AUTOLOAD_CLASS|SPL_AUTOLOAD_FUNCTION
);
Patches welcome! :)
* 2011.08.17 - replace the T_* constants with SPL_AUTOLOAD_*