PHP:如何在 class 中正确创建 class 的实例? (也就是在 class 中使用 class)

PHP: How to properly create an instance of a class within a class? (AKA use a class within a class)

我读到在另一个 class (html class) 中使用 class 属性 (database class) 的最佳方法是创建 class 属性 (database class) 的实例=34=] 在 class (html) 内。至于为什么,我不确定……但无论如何。

这是怎么做到的? 我有两种情况,看看哪些是正确的,哪些是错误的...

场景A

require( database.php );

class html(){
    private static $db = null;
    private static $page = null;

    public function __construct($id){
        self::bootstrap($id);
    }

    public static function bootstrap($id){
        self::$db = new database();
        self::$page = $db->page($id);
        return self::$page;
    }
}

//$page = new html('hello-world');
//print $page;
print html::bootstrap('hello-world');

场景 B

//Class autoloader
spl_autoload_register(function ($class) {
    include $_SERVER['DOCUMENT_ROOT'] . '/class/' . $class . '.php';
});


//Scenario B code
class html(){
    private static $page = null;

    public static function bootstrap($id){
        self::$page = database::page($id);
        return self::$page;
    }
}

print html::bootstrap('hello-world');

如果这些是错误的方法,也许你有一个合适的不同场景

我想说没有一个场景是错误的,但是场景B更合适。由于 pagedatabase class 中被设计为静态方法,这表明该方法是有意使用的。