1、概念
__autoload()方法并不是一个魔术方法,但是这个方法非常有用,当实例化或继承一个不存在的类,会自动调用__autodoad(),同时将该类的类名作为参数。
在实际的开发当中,一个类会放到一个专门的php文件中,而且这个文件的名称一般会加class后缀
2、例题
2.1Women.class.php
class Women{
publiC function work(){
echo '女性在工作';
}
public function doWork($obj){
$obj->work();
}
}
2.2Nurse.class.php
<?php
class Nurse extends Women
{
public function work()
{
echo '护士在为病人扎针';
}
}
2.3Teacher.class.php
<?php
class Teacher extends Women
{
public function work()
{
echo '老师在喋喋不休的上课';
}
}
2.4autoload.php
<?php
include 'Women.class.php';
include 'Nurse.class.php';
include 'Teacher.class.php';
$w=new Women();
$n=new Nurse();
$t=new Teacher();
$w->doWork($n);
$w->doWork($t);
自动加载
帮着我们自动的将类所在的php文件引入,修改上面代码如下:
<?php
$w=new Women();
$n=new Nurse();
$t=new Teacher();
$w->doWork($n);
$w->doWork($t);
function __autoload($class){
// echo 'autoload';
include $class.'.class.php';
}
说明:如果使用__autoload方法,必须去掉手动的include 代码,否则方法不会执行。