我不确定这在PHP中是否可行,但这是我尝试做的。我的班级中有一个静态变量,我想在课堂外作为参考。
class Foo {
protected static $bar=123;
function GetReference() {
return self::&$bar; // I want to return a reference to the static member variable.
}
function Magic() {
self::$bar = "Magic";
}
}
$Inst = new Foo;
$Ref = $Inst->GetReference();
print $Ref; // Prints 123
$Inst->DoMagic();
print $Ref; // Prints 'Magic'
有人可以确认是否可以在所有或其他解决方案中实现相同的结果:
我想它总能通过在课堂外宣布的全局变量和一些编码规则作为紧急解决方案来解决。
//谢谢
[编辑]
是的,我使用PHP 5.3.2
答案 0 :(得分:3)
PHP文档提供了一个解决方案:Returning References
<?php
class foo {
protected $value = 42;
public function &getValue() {
return $this->value;
}
}
$obj = new foo;
$myValue = &$obj->getValue(); // $myValue is a reference to $obj->value, which is 42.
$obj->value = 2;
echo $myValue;