[英]Some equivalent like autoload/Just-In-Time for non-OOP function libraries in php?
[英]PHP __autoload Function in OOP
__autoload()函数(PHP)是否必须是独立函数,还是可以在一个类中用作公共/受保护/私有函数?
我听说它必须是独立的函数,不应在类中使用。 这是真的还是可以在课堂上使用?
提前致谢!
您可以为此使用SPL:
class MyAutoloader
{
public static function register()
{
spl_autoload_register(array(new self, 'autoload'));
}
public static function autoload($classname)
{
// auto load code
}
}
请参阅__autoload()
文档 ,其中说:
spl_autoload_register()
为自动加载类提供了更灵活的替代方法。 因此,不建议使用__autoload(),以后可能不建议使用或将其删除。
在某个随机类中使用__autoload()有什么意义?
当您尝试从尚未定义的类实例化对象时,将调用__autoload()( spl_register_autoload()
优于__autoload()
)。
因此,它必须是全局可用的。 PHP不知道XYZ
类包含要调用的名为__autoload()
的函数。
您可以做的是创建一个处理自动加载的类,然后使用spl_autoload_register()
函数在需要自动加载时调用您的类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.