Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问未定义为全局字符串的PHP类中的全局字符串_Php_Class_Global Variables - Fatal编程技术网

访问未定义为全局字符串的PHP类中的全局字符串

访问未定义为全局字符串的PHP类中的全局字符串,php,class,global-variables,Php,Class,Global Variables,我有一个独特的情况,很难调试 我需要在没有严格定义为全局的php类中设置一个全局字符串,该类必须位于另一个文件中 带有字符串的file.php的内容如下: //this cannot be changed $foo_version = '1.1.1'; 试图访问此字符串的example.php文件必须使用类: class Bar extends Task { public function main() { require_once('../file.ph

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

我需要在没有严格定义为全局的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_版本
在类中返回一些内容


此外,在类外无法定义/执行任何操作。

您拥有的是一个变量
$foo\u version
,可以轻松更改。您可以使用
define
将其改为常量

如果您坚持用
require
替换
require\u一次,那么您的代码将正常工作,因为PHP将检查文件是否已包含,如果已包含,则不再包含(require)

如果你在另一个课堂上使用过这个,它肯定不会起作用。将代码更改为以下内容

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

如果包含该文件,并且变量位于包含文件中,则可以直接使用它

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

通过构造或main()函数在参数中传递它不
$GLOBALS['foo_version']='1.1.1'工作?
$foo_版本='1.1.1'
不能以任何方式更改或更改。如果你不想更改它,你需要将其设置为常量而不是变量@这是一个挑战,我不能更改它,我希望可以。你能更改
条形图吗
类是的,类可以更改,但所有代码都必须包含在类中。我想,不幸的是,我无法以常规方式进行调试,它不工作。如果它不工作,则
$foo_version
不是file.php中的变量。在file.php中显示代码?它很简单
,只需键入代码并进行测试,对我来说效果很好。你是如何测试它是否工作的?这是由一个命令行脚本和许多其他功能运行的,它是最后运行的东西,因此我无法以正常方式调试它,将不得不进一步排除故障,谢谢。
class Bar extends Task 
{
    public function main() {
       require_once('../file.php');
       update_option( 'db_field', $foo_version );
    }
}