我試圖整合用戶的方式能夠有配置設置保存到一個空白的PHP文件是這樣的:PHP - 可以將Require_Once用作對象嗎?
<?php // Configuration.php
$con = array(
'host' => 'host'
'user' => 'username',
'pass' => 'password',
'name' => 'dbname'
);
?>
我曾嘗試:
class Configuration{
public $database = require_once 'Configuration.php';
}
$config = new Configuration;
print_r($config->database->con);
這是可能的或不?當訪問Configuration.php頁面時會出現一個顯示,所以我不想include
這個頁面在這個網站上,只有require
它的屬性。
在此先感謝。
Updated working code for viewers - 由@Yoshi使用類和構造函數的
的config.php -
if(defined('DFfdcxc58xasdGJWdfa5hDFG')): // Random unique security key
return array(
'host' => 'localhost',
'user' => 'bob',
'pass' => '123',
'name' => 'data'
);
endif;
數據庫類:
interface Dashboard{
public function initialize($actual);
}
define('DFfdcxc58xasdGJWdfa5hDFG',0); // Random unique security key
class Configuration{
protected $config = require_once('Config.php');
protected $api_key = "Xc4FeSo09PxNcTTd3793XJrIiK";
}
class DashboardSettings{
public $alerts = array();
protected $comments = true;
protected $read_only = false;
protected $safe_mode = false;
}
class Database extends Configuration extends DashboardSettings implements Dashboard{
public function __construct(){
$this->db = mysqli_connect($this->config[0],$this->config[1],$this->config[2],$this->config[3]);
if(mysqli_connect_errno){ array_push($this->alerts, 'Error connecting to Database...'); $this->safe_mode = true; }
}
public function initialize($actual = null){
if($actual != null){
// Handle incomming setting - reference DashboardSettings
} else {
// Handle all settings - reference DashboardSettings
}
}
}
不,這是不可能的 –
有什麼辦法來實現這一點,即使是在一個單獨的方法? – KDOT
加載配置並將其作爲構造函數參數傳遞。 ('新配置($ con)') – Yoshi