我正在尝试集成一种用户能够将配置设置存储到空白PHP文件中的方式,如下所示:
<?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
}
}
}
答案 0 :(得分:1)
答案是否定的。当你指定require_once();对于变量,变量在成功包含文件的情况下变为布尔值1,否则变为0(否则在require_once()中无用,因为如果失败则返回致命错误。 所以,做:
<?php
$hello = require_once("./hello.php");
echo $hello; // Prints 1.
?>
无论如何,如果你创建一个返回内容的php文件,例如:
FILE: require.php
<?php
$hello = "HELLO";
return $hello;
?>
在这种情况下,前面的例子会有所不同:
<?php
$hello = require_once("./require.php");
echo $hello; // Prints HELLO.
?>
因此,您无法存储函数本身以便稍后执行它,但您可以存储来自必需或包含文件的返回值。无论如何,如果你更好地解释你使用它是什么,我可以帮助你更好。
回答@DavidÁlvarez