所以,我已经得到了这样的设置:
class System extends mysqli{
function __construct(){
//user variables such as $this->username are returned here
}
}
$sys = new System();
class Design{
function setting(){
echo $sys->username;
}
}
$design = new Design();
然而,Design类并没有回应用户名。我可以在Design类之外回显用户名,但不能在设计类中回显。我怎么能这样做呢?
答案 0 :(得分:5)
其他人的答案都很好,但你可以很好地注入对系统的依赖:
class Design{
private $sys;
public function __construct(System $sys) {
$this->sys = $sys;
}
function setting(){
echo $this->sys->username;
}
}
$sys = new System;
$design = new Design($sys);
答案 1 :(得分:1)
您的Design
班级无法访问$sys
变量。
你必须做这样的事情:
class System extends mysqli{
function __construct(){
//user variables such as $this->username are returned here
}
}
class Design{
private $sys;
function __construct(){
$this->sys = new System();
}
function setting(){
echo $this->sys->username;
}
}
$design = new Design();
答案 2 :(得分:-1)
那是因为$sys
不在Design类的范围内。
function setting(){
$sys = new System();
$sys->username;
}
应该有效,假设username
是公开的。