PHP面向对象 – 自动加载类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP面向对象 – 自动加载类相关的知识,希望对你有一定的参考价值。

在设计面向对象的程序开发时,通常为每个类的定义都单独建立一个PHP源文件。当你尝试使用一个未定义的类时,php会报一个致命错误。可以用include或require包含一个类所在的源文件,毕竟你知道要用到那个类。如果一个页面需要使用多个类,就不得不在脚本页面开头编写一个长长的包含文件的列表,将本页面需要的类全部包含进来。这样处理不仅繁琐,而且容易出错。 
  php提供了类的自动加载功能,这可以节省编程的时间。当你尝试使用一个PHP没有组织到的类时,它会寻找一个__autoload()的全局函数(不是在类中声明的函数)。如果存在这个函数,PHP会用一个参数来调用它,参数即类的名称。 
  在下例中说明了__autoload()是如何使用的,它假设当前目录下每个文件对应一个类,当脚本尝试来创建一个类User的实例时,PHP会自动执行__autoload()函数。脚本假设user.class.php中定义有User类,不管调用时是大写还是小写,PHP将返回名称的小写。所以在做项目时,在组织定义类的文件名时,需要按照一定的规则,一定要以类名为中心,也可以加上统一的前缀或后缀形成的文件名,比如classname.class.php、xxx_classname.php、classname_xxx.php或是classname.php等,推荐类文件的命名使用“classname.class.php”格式。

<?php
/*
    声明一个自动加载类的魔术方法__autoload()
*/
function __autoload($className){
    //在方法中使用include包含类所在的文件
    include(strtolower($className) . ".class.php");
}

$obj = new User(); //User类不存在,则自动调用__autoload()函数,将类名“User”作为参数传入
$obj2 = new shop();    
?>


以上是关于PHP面向对象 – 自动加载类的主要内容,如果未能解决你的问题,请参考以下文章

PHP面向对象——Final关键字 类的自动加载

PHP面向对象的工具

PHP 自动加载类

PHP面向对象OOP编程

php----面向对象--加载类

面向对象的PHP