OO PHP构造变量错误

时间:2012-12-22 13:29:49

标签: php

做一些OO PHP。我在第11行和第31行得到了未定义的变量,我不知道为什么。

http://pastebin.com/D0rNWdn3

<?php 

    class geometricObject {
        private $color;

        public function __construct($color){
            $this->color = $color;
        }

        public function getColor(){
            return $color;
        }

        public function setColor($color){
            $this->color = $color;
        }
    }

    class circle extends geometricObject {
        private $radius;

        public function __construct($radius, $color){
            parent::__construct($color);
            $this->radius = $radius;
        }

        public function getRadius(){
            return $radius;
        }

        public function getArea(){
            return (pi() * pow($radius, 2));
        }

        public function getSurfaceArea(){
            return (2 * pi() * $radius);
        }

        public function setRadius($radius){
            $this->radius = $radius;
        }
    }

?>

<?php 

    include_once 'templates/classes.php';

    $myCircle = new circle(10, "green");

    $circleArea = $myCircle->getArea();

    $color = $myCircle->getColor();

    include_once 'output.php';

?>

<html>
<body>

<?php echo $circleArea; echo $color; ?>

</body>
</html>

3 个答案:

答案 0 :(得分:2)

您忘记了$this->

return $this->color;

答案 1 :(得分:2)

您收到错误,因为$ color在方法范围内未定义。您只需将$color参数传递给构造函数和setColor方法。

要使用其他类方法访问它,您可以使用$this->color而不是$color

答案 2 :(得分:1)

您之前忘记$this变量应该这样做: return $this->color;