2

我不知道我是否严重误解了 OOP 的概念,或者我在这里执行错误。请有人解释我在这里做错了什么

<?php

class my {
    public function myName(){
        return get_class($this);   
    }
    public function toArray() {
        $retArray=array();
        $class_vars = get_object_vars($this);

        foreach ($class_vars as $name => $value) {
           $retArray[$name]=$value;
        }
        return $retArray;
    }
}
class you extends my {
    private $yoo;
    public function __construct($var1) {
        $this->yoo=$var1;
    }
}
$objectYou = new you("I am pri");
echo '<pre>';
echo $objectYou->myName();
echo '<br>';
print_r($objectYou->toArray());
echo '</pre>';
?> 

输出是:

大批 ( )

我在这里想要的是拥有具有将对象转换为数组my的功能的超类。toArray现在所有扩展这个类的类都应该继承这个函数并且可以使用它。但是这里调用 toArrayobjectYou会返回空数组。同时调用myName显示objectYou子类的名称。

4

1 回答 1

4

唯一的属性 ( $yoo) 是私有的,因此无法从my定义 toArray() 的地方访问。

于 2013-10-02T12:28:29.373 回答