PHP自动加载对象如何实现,示例是怎样的
Admin 2022-10-09 群英技术资讯 821 次浏览
这篇文章主要介绍了“PHP自动加载对象如何实现,示例是怎样的”相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP自动加载对象如何实现,示例是怎样的文章都会有所收获,下面我们一起来看看吧。很多开发者写面向对象的应用程序时对每个类的定义建立一个 PHP 源文件。一个很大的烦恼是不得不在每个脚本开头写一个长长的包含文件列表(每个类一个文件)。
在 PHP 5 中,不再需要这样了。可以定义一个 __autoload() 函数,它会在试图使用尚未被定义的类时自动调用。通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。
Tip
spl_autoload_register() 提供了一种更加灵活的方式来实现类的自动加载。因此,不再建议使用 __autoload() 函数,在以后的版本中它可能被弃用。
Note:
在 5.3.0 版之前,__autoload 函数抛出的异常不能被 catch 语句块捕获并会导致一个致命错误。从 5.3.0+ 之后,__autoload 函数抛出的异常可以被 catch 语句块捕获,但需要遵循一个条件。如果抛出的是一个自定义异常,那么必须存在相应的自定义异常类。__autoload 函数可以递归的自动加载自定义异常类。
Note:
自动加载不可用于 PHP 的 CLI 交互模式。
Example #1 自动加载示例
本例尝试分别从 MyClass1.php 和 MyClass2.php 文件中加载 MyClass1 和 MyClass2 :
function __autoload($class_name){
require_once $class_name.'.php';
}
$obj = new MyClass1();
$obj2 = new MyClass2();
注意:MyClass1.php和MyClass2.php需要和当前脚本在同一目录才能加载到
Example #2 另一个例子
本例尝试加载接口 ITest:
function __autoload($name) {
var_dump($name);
}
class Foo implements ITest {
}
/*
string(5) "ITest"
Fatal error: Interface 'ITest' not found in ...
*/
Example #3 自动加载在 PHP 5.3.0+ 中的异常处理
本例抛出一个异常并在 try/catch 语句块中演示。
function __autoload($name) {
echo "Want to load $name.\n";
throw new Exception("Unable to load $name.");
}
try {
$obj = new NonLoadableClass();
} catch (Exception $e) {
echo $e->getMessage(), "\n";
}
以上例程会输出:
Want to load NonLoadableClass.
Unable to load NonLoadableClass.
Example #4 自动加载在 PHP 5.3.0+ 中的异常处理 - 没有自定义异常机制
本例将一个异常抛给不存在的自定义异常处理函数。
以上例程会输出:
Want to load NonLoadableClass.
Want to load MissingException.
Fatal error: Class 'MissingException' not found in testMissingException.php on line 4
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
swoole能设置多个定时器,swoole定时器的最小颗粒是1秒。支持多个定时器。注意不能存在2个相同间隔时间的定时器。 增加定时器后需要写一个回调函数。
TP5框架怎么实现多图片上传预览?我们在需要上传多图片的时候,如果有上传图片预览操作,那么用户体验感是比较好。这篇文章就给大家分享一下TP5框架实现多图片上传预览的方法,文本示例具有一定参考价值,下面我们一起来了解一下。
PHP的new static和new self不同在哪?一些PHP新手可能对new static和new self的区别不是很清楚吗,对此本文就通过一个例子给大家介绍一下两者的不同的,以及使用要注意的问题。那么感兴趣的朋友就继续往下看吧。
本节将为你讲解PHP过滤器的使用,PHP过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入。什么是PHP过滤器?PHP过滤器用于验证和过滤来自非安全来源的数据。
可在内部迭代自己的外部迭代器或类的接口。接口摘要IteratorextendsTraversable{/*方法*/abstractpublicmixedcurrent(void)abstractpublics...
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008