PHP - 可以Require_Once用作对象吗?

时间:2016-03-15 10:25:29

标签: php

我正在尝试集成一种用户能够将配置设置存储到空白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
        }
    }

}

1 个答案:

答案 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