gpt4 book ai didi

PHP 在父类(super class)中获取属性方法

转载 作者:行者123 更新时间:2023-12-02 22:21:08 24 4
gpt4 key购买 nike

我希望我的类从其父类(super class)继承 getProperties 方法。

class Mother {
function getProperties(){
return get_class_vars(get_class($this));
}
}

class Child extends Mother{
private $one = 1;
private $two = 2;
}

问题是,如果我对 Child 调用 getProperties,我得到的结果是空的:

 $c = new Child();
var_dump( $c->getProperties() );

返回 array(0) {}

如果我用相同的命令覆盖 Child 中的 getProperties 方法,它会按预期工作并返回 array(2) { ["one"]=> int(1) ["two"]=> int( 2)。所以我认为 $this 被解析为 Mother 类,而不是继承该方法的类。我怎样才能让 Child 以我需要的方式继承该方法?或者我如何更改 $this 的范围以与 Child 而不是 Mother 一起工作?也许我只是在这里遗漏了一个非常简单的事实,因此我们将不胜感激。

最佳答案

问题是您的属性是private。这使得它们只能由声明类访问,并且只能由声明类访问,没有其他人可以访问。让它们 protected

请注意,尽管如此,不同的 PHP 版本之间似乎仍存在一些不一致:http://3v4l.org/1Rm6e

关于PHP 在父类(super class)中获取属性方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13691192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com