怎么新建MySQL数据库

发布时间:2022-10-09 作者:admin
阅读:264
这篇文章主要介绍了“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


上述内容具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多"PHP自动加载对象如何实现,示例是怎样的"的内容,大家可以关注群英网络的其它相关文章。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

二维码-群英

长按识别二维码并关注微信

更方便到期提醒、手机管理

7*24 全天候服务

售前 400-678-4567

售后 0668-2555666

售后 400 678 4567

信息安全 0668-2555 118

域名空间 3004329145