可捕获的致命错误:传递给getPrice()的参数1必须是Rectangle的一个实例,没有给出

时间:2014-11-29 16:38:49

标签: php oop polymorphism

我只是想计算矩形类之外的矩形区域的价格,它返回它的区域。只是尝试多态的例子。难道我做错了什么? 我是OOP aproach的新手。这是我的代码:

// getting the area
class Rectangle{

    public $height;
    public $width;

    public function __construct($height, $width){

        $this->height = $height;
        $this->width = $width;
    }

    public function getArea(){

        return $this->height * $this->width. "<br />";
    }

}

在课外我创建了函数`getPrice()

`function getPrice(Rectangle $rectangle){

    return $rectangle->getArea() * 0.25;

}

创建实例并打印出来。

$rectangle = new Rectangle(12, 15);
echo getPrice();

显示的错误是:

捕获致命错误:传递给getPrice()的参数1必须是Rectangle的一个实例,没有给出,在第41行的/var/www/html/crashcourse/oop_php/phpacademy/polymorphism.php中调用,并在/ var中定义第31行/www/html/crashcourse/oop_php/phpacademy/polymorphism.php

1 个答案:

答案 0 :(得分:1)

看看getPrice()函数有一个Rectangle类的$ rectangle参数,需要传递实例化类的Rectangle对象。 请执行以下操作:

$ rectangle = new Rectangle (12, 15);
echo getPrice ($ rectangle);