访问未定义为全局字符串的PHP类中的全局字符串
我有一个独特的情况,很难调试 我需要在没有严格定义为全局的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
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 );
}
}