0

这是一个 PHP 新手问题:

我想让我的班级访问包含文件中的数据库凭据:../config.inc

<?php
   $db_info['host']='localhost'; // and so forth 
   ...
 ?>

后来,在我的类源文件中,我有:

   <?php
      require_once('../config.inc'); // include the above file
      public class Foo {
         static function Host() {
            echo $db_info['host'];
         }
      }
   ?>

当尝试在其他代码中访问该类时,我收到一个错误,声称 $db_info 未定义。当我尝试在类范围内移动 require_once 时(在 Foo { 之后)我得到一个语法错误,所以显然不能在类中使用 require_once。编写需要访问包含数据的类静态方法时,最佳实践是什么?谢谢。

4

1 回答 1

2

您的范围有问题。您包含的变量在您的班级之外可用,但在您的班级内部不可用。建议的方法应该是将变量传递给类的构造函数并将其存储在类的成员变量中。

但是由于您将该函数用作静态函数,因此您可以使用global但它不是最佳实践。或者,您可以将文件包含在函数中。

  public class Foo {
     static function Host() {
      require_once('../config.inc'); // include the above fil  
      echo $db_info['host'];
     }
  }
于 2013-08-29T03:33:26.973 回答