PHP中遇到`__autoload`异常和`Fatal error: Uncaught Error: Class`错误怎么办?
- 内容介绍
- 文章标签
- 相关推荐
本文共计265个文字,预计阅读时间需要2分钟。
在PHP的`__autoload`自动加载情况下,引入第三方插件可能会出现致命错误:`Uncaught Error: Class's exception`。原因在于`__autoload`是一个函数,只能被定义一次。因此,在调用其他第三方库时可能会引发异常。
异常原因
__autoload因为是一个函数,所以只能被定义一次。因而在调用其他第三方库时,由于第三方库也会调用自动加载,这样可能会被覆盖掉原有的__autoload事件。
解决办法
用spl_autoload_register来取代__autoload(),注册多个自动加载事件。
spl_autoload_register会根据定义的先后顺序进行自动加载。
更多Fatalerror:UncaughtError:Class的错误解决办法:www.libs.org.cn/
示例说明
1.[代码]原程序
function __autoload($filename){ $file="libs/class.".$filename.".php"; if(is_file($file)) { include $file; return; } }
2.[代码]更改后
class libs{ public static function autoload($filename){ $file="libs/class.".$filename.".php"; if(is_file($file)) { include $file; return; } } } spl_autoload_register('libs::autoload');
本文共计265个文字,预计阅读时间需要2分钟。
在PHP的`__autoload`自动加载情况下,引入第三方插件可能会出现致命错误:`Uncaught Error: Class's exception`。原因在于`__autoload`是一个函数,只能被定义一次。因此,在调用其他第三方库时可能会引发异常。
异常原因
__autoload因为是一个函数,所以只能被定义一次。因而在调用其他第三方库时,由于第三方库也会调用自动加载,这样可能会被覆盖掉原有的__autoload事件。
解决办法
用spl_autoload_register来取代__autoload(),注册多个自动加载事件。
spl_autoload_register会根据定义的先后顺序进行自动加载。
更多Fatalerror:UncaughtError:Class的错误解决办法:www.libs.org.cn/
示例说明
1.[代码]原程序
function __autoload($filename){ $file="libs/class.".$filename.".php"; if(is_file($file)) { include $file; return; } }
2.[代码]更改后
class libs{ public static function autoload($filename){ $file="libs/class.".$filename.".php"; if(is_file($file)) { include $file; return; } } } spl_autoload_register('libs::autoload');

