自动加载对象的流程

index.php

<?php

// require 'Test1.php';
// require 'Test2.php';

new Test2();

function __autoload($class) {
    require __DIR__.'/'.$class.'.php';
    echo($class);
}

 ?>

Test2.php

<?php
// namespace Test2;

class Test2 {
    public function __construct() {
        echo __FILE__;
    }

    public function __destruct() {
        echo '结束了';
    }
}

 ?>

php解释index.php的输出结果是

问:

为什么echo($class)先执行?

解答:

当执行__autoload()函数时,必须把该函数执行完,才能回去执行new对象。

原文地址:https://www.cnblogs.com/arvintang/p/6013429.html