问题:我想在一个类中永久设置私有变量,然后从类外部使用 getter 函数访问它们。问题是每次我实例化一个新类并创建一个对象时,它都会破坏先前设置的变量。在提供的示例中,我不想通过调用函数“getAgain”传递对象。我想简单地访问 globalVars 类而不破坏任何设置的变量。我知道通过创建一个“新对象”本质上会破坏当前的非静态变量。所以:
- 如何在类中永久设置私有变量?
- 或者
- 如何在不重新实例化类的情况下调用函数(getter/setter)(以免破坏当前设置的变量)。
我担心我没有以正确的方式处理这个问题,或者我的方法可能有缺陷。
<?php
class globalVars{
private $final = "Default Foo </br>";
public function setter($param){
$this->final = $param;
}
public function getter(){
return $this->final;
}
}
class driver{
function __construct($param){
$globalVars = new globalVars();
$globalVars->setter($param);
$val = $globalVars->getter();
echo $val;
$this->getAgain();
}
function getAgain(){
$globalVars = new globalVars();
$val = $globalVars->getter();
echo $val;
}
}
$input = "Change to Bar </br>";
$driver = new driver($input);
?>