我不知道我是否嚴重誤解了OOP的概念,或者我在這裏實現了錯誤。可以請別人解釋什麼,我做錯了Php get_object_vars調用子類不工作
<?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
將對象轉換爲數組。現在所有擴展這個類的類都應該繼承這個函數並且可以使用它。但在這裏調用數組objectYou
返回空數組。 objectYou
同時調用myName
顯示子類的名稱。
嘗試在'class you'中將'$ yoo'設置爲'protected'而不是'private'。 –