0

我有一个很难调试的独特情况。

我需要在未严格定义为全局的 php 类中设置一个全局字符串,该类必须在另一个文件中。

带有字符串的file.php只是这样:

//this cannot be changed
$foo_version = '1.1.1';

example.php试图访问此字符串的文件必须使用一个类:

class Bar extends Task {

      public function main() {

           require_once('../file.php');
           //global $foo_version; this doesn't work
           // update the database with this string, does not work

           update_option( 'db_field', $foo_version );

          }
      }

我怎样才能$foo_version在课堂上返回一些东西?

在课堂之外也无法定义/完成任何事情。

4

2 回答 2

1

如果包含文件,并且变量在包含文件中,则可以使用它。

class Bar extends Task 
{
    public function main() {
       require_once('../file.php');
       update_option( 'db_field', $foo_version );
    }
}
于 2012-10-06T18:47:38.210 回答
0

你所拥有的是一个变量$foo_version,它可以很容易地改变。您可以使用define使其成为常量而不是查看 PHP DOC

define("FOO_VERSION", "1.1.1");

class Bar extends Task {
    public function main() {
        require_once ('../file.php');
        update_option('db_field', FOO_VERSION);
    }
}

如果您坚持require_oncerequire您的代码替换将起作用,因为 PHP 将检查文件是否已被包含,如果是,则不再包含(要求)它。

如果您在另一个课程中使用过它,那肯定是行不通的。将您的代码更改为以下内容

class Bar extends Task {
    public function main() {
        require ('../file.php');
        update_option('db_field', $foo_version);
    }
}
于 2012-10-06T18:44:46.370 回答