登陆

独孤九贱 类的自动加载__autoload()的小疑问

class 类名{
    function__autoload($ClassName){
    $path=$ClassName.'.php';
    if(file_exists($path)){//判断文件是否存在
        require_once($path);//导入该文件
    }
    else{该文件不存在}
    }
    }

外部有一个test.php,我很好奇,我对了几遍,并看不到$ClassName =test 意思的语句 那他是怎么能把text.php导入进来的?

# PHP
葫芦娃平衡盘葫芦娃平衡盘1559 天前610 次浏览

全部回复(2)我要回复

  • 听装雪碧

    听装雪碧2017-08-09 11:34:00

    也就是你new test类名的时候,会执行这个__autoload方法,会把你new后面这个类名test当作参数传进这个方法里面

    回复
    0
  • 听装雪碧

    听装雪碧2017-08-09 11:30:43

    你要在这个类里面引用一个不存在的类的时候,写了__autoload方法后,他会自动判断这个类文件是否存在,存在就会执行

    require_once($path)引用这个类文件

    你可以在你这个文件加上下面的代码

     echo (new Autoload1())->god();

     echo (new Autoload1())->name;


    然后test.php文件中写上

        class Test

        {

            public $name = '我是Test类文件里面的属性name';

            public function god(){

                return '我是Test类文件里面的方法god()';

            }

        }

    就可以看到自动的引入了这个Test文件,可以成功的输出值


    回复
    1
  • 取消回复发送