-4

做一些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>
4

3 回答 3

2

你忘了$this->

return $this->color;
于 2012-12-22T13:31:22.440 回答
2

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

要在其他类方法中访问它,您将使用$this->colornot$color

于 2012-12-22T13:31:28.947 回答
1

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

于 2012-12-22T13:33:15.673 回答