PHP面向对象-实现自动加载类__autoload() 的代码案例
程序员文章站
2022-03-27 15:42:03
...
在设计面向对象的程序开发时,通常为每个类的定义都单独建立一个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提供了类的自动加载功能,这可以节省编程的时间。当你尝试使用一个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面向对象-实现自动加载类__autoload() 的代码案例的详细内容,更多请关注其它相关文章!
推荐阅读
-
php中使用__autoload()自动加载未定义类的实现代码
-
PHP 进阶篇:面向对象的设计原则,自动加载类,类型提示,traits,命名空间,spl的使用,反射的使用,php常用设计模式 (麦子学员 第三阶段)
-
php中使用__autoload()自动加载未定义类的实现代码_PHP
-
php中使用__autoload()自动加载未定义类的实现代码
-
php中使用__autoload()自动加载未定义类的实现代码
-
php中使用__autoload()自动加载未定义类的实现代码_php技巧
-
php面向对象 自动加载类 对象串行化 多态的应用_PHP教程
-
php中使用__autoload()自动加载未定义类的实现代码_PHP
-
php中使用__autoload()自动加载未定义类的实现代码_PHP教程
-
php中使用__autoload()自动加载未定义类的实现代码_php技巧