Php 从父对象继承属性

Php 从父对象继承属性,php,oop,inheritance,abstract-class,Php,Oop,Inheritance,Abstract Class,全部, 如果我有这样一门课: class MyClass { var $height; var $width; function setDimensions($height,$width) { $this->height = $height; $this->width = $width; } } 还有一门课,像这样 class AnotherClass extends MyClass { var

全部,

如果我有这样一门课:

class MyClass {
     var $height;
     var $width;

     function setDimensions($height,$width) {
        $this->height = $height;
        $this->width  = $width;
     }
}
还有一门课,像这样

class AnotherClass extends MyClass {
     var $color;
     var $speed;

     function setFeatures($color,$speed) {
        $this->color  = $color;
        $this->speed  = $speed;
     }

     function showAll() {
        echo "Color: ".$this->color."<br />";
        echo "Speed: ".$this->speed."<br />";
        echo "Height: ".$this->height."<br />";
        echo "Width: ".$this->width."<br />";
     // echo "Height: ".parent::height."<br />";
     }
}
它不打印$firstClass中定义的属性。这是可以理解的,因为它们是两个独立的实例/对象。如何将属性从一个对象传递到另一个对象?我是否需要执行类似于
$secondClass=new AnotherClass($firstClass)
的操作,并以这种方式传递它


提前感谢您,感谢您的帮助。

因为它们是不同的实例

在本例中,有一个实例同时是另一个类和MyClass

$firstClass = new AnotherClass();
$firstClass->setDimensions('200cm', '120cm');
$firstClass->setFeatures('red','100mph');

$firstClass->showAll();
这些类都不是抽象的

在您的示例中,以下语句是正确的:

  • $secondClass是另一个类
  • $secondClass是MyClass
  • $firstClass是MyClass
  • $firstClass不是另一个类
此外,请不要使用
var
定义类属性

使用
private
public
protected

class MyClass {
     public $height;
     public $width;

这就是诀窍。这是一个抽象类的例子吗?也许值得一提的是什么是
private
protected
public
。我会投你一票的@Darius不,这不是抽象类的例子,这只是继承。
class MyClass {
     public $height;
     public $width;