码迷,mamicode.com
首页 > Web开发 > 详细

PHP面向对象 – 自动加载类

时间:2017-07-23 11:35:54      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:http   autoload   推荐   XML   后缀   print   自动调用   加载   ring   

在设计面向对象的程序开发时,通常为每个类的定义都单独建立一个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面向对象 – 自动加载类

标签:http   autoload   推荐   XML   后缀   print   自动调用   加载   ring   

原文地址:http://www.cnblogs.com/limingxishuai666/p/7223771.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!