-4

オブジェクト指向の 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->colorない$color

于 2012-12-22T13:31:28.947 に答える
1

$thisその変数の前に、次のようにする必要がある ことを忘れていました。return $this->color;

于 2012-12-22T13:33:15.673 に答える