[英]call function from another class
我试图从另一个称为方函数区域的类调用一个函数到长方体类。
abstract class Shapes
{
protected $name;
protected $colour;
function __construct($n, $c)
{
$this->name = $n;
$this->colour = $c;
}
谢谢!
首先 :至少您应该修复此方法:
function callclassA() {
$area1=0;
$classA = new Square();
$area1 = $area1 + $classA->area();
}
这并不意味着整体会起作用,但是至少您不会尝试调用非对象的方法。
其次 ,callclassA()方法正在创建和填充变量,但没有返回任何结果,也没有将结果保留在类变量中。 最好尝试类似
class Cuboid extends Shapes
{
private $square=null;
private $area=null;
function __construct($n, $c, $s, $ns)
{
parent::__construct($n, $c);
$this->square=new Square("Square", $c, $s, $ns);
$this->area = $this->square->area();
}
public function area()
{
return (6* $this->area);
}
public function perimeter()
{
return (9* $this->area);
}
}
第三 :您确定长方体的周长是正方形面积的9倍吗? 不应该是平方周长的倍数吗?
独立的类不应该共享数据,这是不可能的。 而是提供一种适配器方法,以将正方形转换为长方体:
class Square {
protected $s;
...
public function getSideLength() {
return $this->s;
}
}
class Cuboid {
...
public static function fromSquare(Square $square) {
return new static($square->getSideLength());
}
}
$square = new Square(...);
$cube = Cuboid::fromSquare($square);
您的代码太复杂,无法详细修改它,但这有望使想法成真。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.