duanraotun1674 2013-01-15 03:38 采纳率: 100%
浏览 27
已采纳

在调用超类中声明的函数时引用子类对象

How do I make a function always refer to it's current class object, even when called from a subclass?

The following code will echo a: a

I need to echo b: b

class superclass {

    private $a = 'a';

    public function getObjectVars() {
        return get_object_vars($this);
    }

}

class subclass extends superclass {

    private $b = 'b';

}

$obj = new subclass();

$vars = $obj->getObjectVars();
foreach ($vars as $name => $value) {

    echo $name . ': ' . $value;

}
  • 写回答

1条回答 默认 最新

  • dtrt2368 2013-01-15 04:05
    关注

    I think you need to make the vars in subclass "protected" instead of private in order for the parent methods to access them..

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题