gpt4 book ai didi

PHP在类中使用全局空间的变量

转载 作者:搜寻专家 更新时间:2023-10-31 20:37:57 27 4
gpt4 key购买 nike

您好,我正在用 PHP 编写一些代码。我需要在我的类中使用全局范围内的变量,但它不起作用。我不知道我是否需要使用命名空间以及如何使用?谢谢示例:

<?PHP

$plantask_global_script = array("one", "two");
$plantask_global_config = array("three", "four");
$myvar = array_merge($plantask_global_script, $plantask_global_config);

class Env implements ArrayAccess
{
static private $container = $myvar;

public function offsetSet($offset, $value)
{
if (is_null($offset)) {
self::$container[] = $value;
} else {
self::$container[$offset] = $value;
}
}

public function offsetExists($offset)
{
return isset(self::$container[$offset]);
}

public function offsetUnset($offset)
{
unset(self::$container[$offset]);
}

public function offsetGet($offset)
{
return isset(self::$container[$offset]) ? self::$container[$offset] : null;
}
}

最佳答案

尝试将 $myvar 作为超全局调用:

private static $container = $GLOBALS['myvar'];

虽然,正如 Ron Dadon 所指出的,这在 OOP 中通常是不好的做法。

编辑:

我在这里跳了枪。我的上述解决方案实际上不起作用,至少对我而言无效。因此,实现此目的的更好方法如下:

$myvar = array_merge($plantask_global_script, $plantask_global_config);

class Env implements ArrayAccess
{
private static $container = null;

public static function init($var)
{
self::$container = $var;
}

...
}

Env::init($myvar);

关于PHP在类中使用全局空间的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30563973/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com