我想用構造函數中的變量擴展一個類。這裏有一個小例子。擴展類(PHP)的變量
我有我的index.php與它下面的代碼。
<?php
namespace System;
require_once 'App/Config.php';
spl_autoload_register(function($class) use ($config) {
require_once $config['app']['root'] . '/' . $class . '.php';
});
$app = new App($config);
$app->Start();
?>
一切工作正常。現在我在類App
的構造函數中傳遞了配置文件。
<?php
namespace System;
use System\Librarys\Database;
class App
{
protected $config;
protected $connection;
public function __construct($config)
{
$this->config = $config;
$this->connection = $this->getConnection();
}
public function getConnection()
{
$this->connection = new Database;
$this->connection = $this->connection->Connect();
return $this->connection;
}
public function Start()
{
echo 'test';
}
public function __destruct()
{
$this->config = null;
$this->connection = null;
}
}
?>
好吧,一切都好!但現在,我想建立數據庫連接。我在數據庫類中擴展了「App」類。如下圖所示:
<?php
namespace System\Librarys;
use System\App;
class Database extends App
{
public function __construct()
{
parent::__construct(??? HOW DO I GET THE VARIABLE FROM THE "APP" CLASS ???);
var_dump($this->config);
}
}
?>
現在,如果我在$this->config
做var_dump()
返回null
。這很明顯,因爲我沒有通過父構造函數中的$config var
。但我該怎麼做?我想在App
類中設置所有變量,以便擴展它,而不需要將變量傳遞給其他類。
您需要將它傳遞到'Database'類。 – AbraCadaver
我嘗試的是在App類中設置所有變量,然後通過擴展的「App」類在數據庫類中訪問它。 –
這不是擴展工程。 – AbraCadaver