PHP 从类中为变量 (globa) 赋值



我有一个小的PHP片段。 如何从主类中为全局分配新值? 例:

$GlobalValue = 0;
class SampleModuleController extends SampleController { 
public function doSomething() {
$NewValue = 1;
$GlobalValue = $NewValue
}
}
echo $GlobalValue;
//This always echo's 0, When I try to output or print outside the class or use somewhere above in the php code. 
//I need to be able to assign the new value from within my class 
//and the function doSomething so it should be 1

您可以在方法doSomething()中将参数作为引用传递,然后调用该函数传递变量$GlobalValue。但是,不太建议使用全局变量。您应该考虑将代码更改为更多 OOP。

$GlobalValue = 0;
class SampleModuleController {
private $newValue = 3;
public function doSomething(&$variable) {
$variable = $this->newValue;
}
}
$ModuleController = new SampleModuleController();
$ModuleController->doSomething($GlobalValue);
echo $GlobalValue; //print 1

如果我理解正确,您可以通过以下方式轻松实现您要做的事情:

global $GlobalValue;
$GlobalValue = 0;
class SampleModuleController {
public function doSomething() {
global $GlobalValue;
$NewValue = 1;
$GlobalValue = $NewValue;
}
}
$ModuleController = new SampleModuleController();
$ModuleController->doSomething();
echo $GlobalValue; //print 1

它们的键位于"global"关键字中(这与访问$GLOBAL["your_var_name"]容器相同。

除此之外,正如其他人所说,应该不鼓励依赖全局变量。

最新更新