2011-03-02 103 views
0

创建可以从文件到文件使用的变量,甚至是对象到对象的最佳方式是什么?例如:PHP自定义全局变量

设置文件将包含一个这样的数组:如果你需要的是全球性的网站配置属性在所有PHPS

<?php 
$config = array(
      'key1' => 'val1', 
      'key2' => 'val2' 
); 
?> 


<?php 
class config { 
    function get_data($file){ 
     require_once('config/'.$file.'.php'); 
     foreach($config as $key => $val){ 
      $this->$key = $val; 
     } 
    } 
} 
?> 
+0

它真的取决于变量的用法。您可以使用会话/ cookies/db存储等。请详细说明或使用变量。 – 2011-03-02 04:15:56

+0

许多许多许多其他可能的重复[读写配置文件](http://stackoverflow.com/questions/2237291/reading-and-writing-configuration-files) – Gordon 2011-03-02 08:07:42

回答

0

config.php只是定义了一些阵列/变量和include它(如数据库的用户名和密码,保存上传文件的路径等)。

5

最好的方法是在您的PHP配置文件中使用define()并将其包含在整个网站中。这将防止您意外覆盖配置中的值。

但是,这个问题是,数组是不允许的。只有标量和空值是允许的。

另一种方法是将配置文件与静态类结合使用。只有静态类才能直接访问该文件,并且可以使用该类来获取值。

CakePHP和Zend(等)使用此方法

+0

。配置文件+静态类是一个很好且广泛的解决方案。 – glomad 2011-03-02 05:55:47

+1

@ithcy statics是普遍的,但绝对不是“好”:http://misko.hevery.com/code-reviewers-guide/flaw-brittle-global-state-singletons/ – Gordon 2011-03-02 08:09:16