我有一个难以调试的独特情况。
我需要在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
返回课堂内的某些内容?
在课堂外也无法定义/完成任何事情。
答案 0 :(得分:1)
如果您包含该文件,并且变量位于包含文件中,则可以使用它。
class Bar extends Task
{
public function main() {
require_once('../file.php');
update_option( 'db_field', $foo_version );
}
}
答案 1 :(得分:0)
您拥有的是变量$foo_version
,可以轻松更改。您可以使用define
将其设为常量see 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_once
替换为require
,您的代码将起作用,因为PHP会检查该文件是否已被包含,如果已包含,则不再包括(要求)。
如果你在另一个类中使用过这个肯定不行。将您的代码更改为以下
class Bar extends Task {
public function main() {
require ('../file.php');
update_option('db_field', $foo_version);
}
}