php 类扩展器和父类构造函数

发布于 2024-10-28 21:16:31 字数 370 浏览 1 评论 0原文

我有一个类

class parent {
function __construct(){
global $var;
}
}

和另一个类

class child extends parent {
function construct(){
parent :: __construct;
}
function print(){
echo $var;
}
}
$a = new child;
$a->print();

有什么方法可以使 $var 可用于 print() 方法,而无需在 print() 内调用 global $var; 吗?

谢谢!

I have a class

class parent {
function __construct(){
global $var;
}
}

and another class

class child extends parent {
function construct(){
parent :: __construct;
}
function print(){
echo $var;
}
}
$a = new child;
$a->print();

Is there any way to make $var available to the print() method without calling global $var; inside print()?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

只怪假的太真实 2024-11-04 21:16:31

不,这是不可能的,因为它只是一个全局变量,因此在父类或继承类中没有任何特殊状态。

但是,您可以:

  1. 将父类中的实例(即:类级别)变量设置为与全局变量相同的值。然后,您可以在子类 print 方法中使用继承的变量。

  2. 将全局变量作为参数传递到构造函数中。但是,您需要修改子构造函数(这会将变量传递给父构造函数)和父构造函数。

No, this isn't possible as it's just a global variable and hence doesn't have any special status within the parent or inherited class.

However, you could:

  1. Set an instance (i.e.: class level) variable within the parent class to the same value as the global variable. You'd then use the inherited variable within the child classes print method.

  2. Pass the global variable into the constructor as an argument. You'd would however need to modify both the child (which would pass the variable onto the parent) and parent constructor's.

昔日梦未散 2024-11-04 21:16:31

如果您将 $var 定义为成员变量,则这是可行的。

class parent {
  public $var;
  function __construct(){
    global $var;
    $this->var = $var;
  }
}

class child extends parent {
  function construct(){
    parent :: __construct;
  }
  function print(){
    echo $this->var;
  }
}

$a = new child;
$a->print();

This is doable if you define $var as a member variable.

class parent {
  public $var;
  function __construct(){
    global $var;
    $this->var = $var;
  }
}

class child extends parent {
  function construct(){
    parent :: __construct;
  }
  function print(){
    echo $this->var;
  }
}

$a = new child;
$a->print();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文