gpt4 book ai didi

php - 使类中的每个函数都可以访问全局变量

转载 作者:行者123 更新时间:2023-12-03 00:04:42 25 4
gpt4 key购买 nike

我在全局范围内有一个名为 ${SYSTEM} 的变量,其中 SYSTEM 是一个已定义的常量。我有很多带有需要访问此变量的函数的类,我发现每次都声明 global ${SYSTEM}; 很烦人。

我尝试声明一个类变量: public ${SYSTEM} = $GLOBALS[SYSTEM]; 但这会导致语法错误,这很奇怪,因为我有另一个类在此声明类变量方式并且似乎工作正常。我唯一能想到的是常数没有被识别。

我已经成功地使用构造函数实现了这一点,但在采用该解决方案之前,我正在寻找一个更简单的解决方案。

<小时/>

编辑全局 ${SYSTEM} 变量是一个数组,其中包含许多其他子数组。不幸的是,似乎没有办法绕过使用构造函数......

最佳答案

好的,希望我已经了解您想要实现的目标

<?php
// the global array you want to access
$GLOBALS['uname'] = array('kernel-name' => 'Linux', 'kernel-release' => '2.6.27-11-generic', 'machine' => 'i686');

// the defined constant used to reference the global var
define(_SYSTEM_, 'uname');

class Foo {

// a method where you'd liked to access the global var
public function bar() {
print_r($this->{_SYSTEM_});
}

// the magic happens here using php5 overloading
public function __get($d) {
return $GLOBALS[$d];
}

}

$foo = new Foo;
$foo->bar();

?>

关于php - 使类中的每个函数都可以访问全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/519078/

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