首页 > 代码库 > PHP面向对象 – 自动加载类
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面向对象 – 自动加载类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。