php 类扩展器和父类构造函数
我有一个类
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不,这是不可能的,因为它只是一个全局变量,因此在父类或继承类中没有任何特殊状态。
但是,您可以:
将父类中的实例(即:类级别)变量设置为与全局变量相同的值。然后,您可以在子类 print 方法中使用继承的变量。
将全局变量作为参数传递到构造函数中。但是,您需要修改子构造函数(这会将变量传递给父构造函数)和父构造函数。
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:
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.
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.
如果您将 $var 定义为成员变量,则这是可行的。
This is doable if you define $var as a member variable.