简单的问题是,是否可以从$this->
调用中访问静态变量?
class testA
{
public static $var1 = "random string";
// current solution
public function getVar()
{
return self::$var1;
}
}
class testB
{
private $myObject;
public function __construct() {
$this->myObject = new testA();
// This line is the question
echo $this->myObject::var1;
// current solution
echo $this->myObject->getVar();
}
}
我担心我已回答了自己的问题。但是有一些静态变量我不希望每个变量都有一个函数,或者当我可以直接访问它时甚至只有一个getVar($staticVar)
。
如果这是唯一的解决方案。关于更好地实现这一目标的任何建议。
如果我要为每个函数调用一个函数,我不妨完全摆脱静态变量。
//method
public function staticVar1() {
return (string) 'random string';
}
答案 0 :(得分:1)
您只需访问此变量:
testA::$var1;
所以使用你的例子,它将是
class testB
{
private $myObject;
public function __construct() {
$this->myObject = new testA();
// This line is the question
echo testA::$var1;
// current solution
echo $this->myObject->getVar();
}
}
答案 1 :(得分:1)
尝试理解静态的目的。
static使得它们无需实例化即可访问。
如果静态变量在类
中,则应按如下方式访问它们self::$var1;
下面的
是可能的
testA::$var1;
会在这里完成工作。