做一些OO PHP。我在第11行和第31行得到了未定义的变量,我不知道为什么。
<?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>
答案 0 :(得分:2)
您忘记了$this->
return $this->color;
答案 1 :(得分:2)
您收到错误,因为$ color在方法范围内未定义。您只需将$color
参数传递给构造函数和setColor方法。
要使用其他类方法访问它,您可以使用$this->color
而不是$color
答案 2 :(得分:1)
您之前忘记$this
变量应该这样做:
return $this->color;