Я пытаюсь разобраться с конструкторами и PHP в целом, но то, что я пытаюсь достичь здесь, - это способ вычисления объема, диаметра и площади круга с PI
и FOUR_THIRDS
в качестве констант в классе.PHP: Как рассчитать объем, диаметр и площадь круга?
Мой код продолжает говорить, что есть константа с константой, указав, что они не определены, но я скопировал метод из php.net. Тогда $radius
также отображается как неопределенная переменная, поэтому я должен добавить $radius = 1;
в класс, чтобы определить его, является ли это то, что это означает, определяя?
<?php
class SphereCalculator {
const PI = 3.14;
const FOUR_THIRDS =4/3;
public function __construct($radius){
$this->classRadius = $radius;
}
public function setRadius ($radius){
$this->classRadius = $radius;
}
public function getRadius(){
return $this->classRadius;
}
public function getVolume() {
return FOUR_THIRDS * PI * ($this->classRadius * $this->classRadius);
}
public function getArea() {
return PI * ($this->classRadius * $this->classRadius);
}
public function getDiameter() {
return $this->classRadius += $this->classRadius;
}
}
$mySphere = new SphereCalculator();
$newRadius =$mySphere->radius;
$newRadius = 113;
echo "The volume of the circle is ".$mySphere->getVolume()."<br>";
echo "The diameter of the circle is ".$mySphere->getDiameter()."<br>";
echo "The area of the circle is ".$mySphere->getArea()."<br>";
?>
константы класса ссылаются как 'само :: FOUR_THIRDS' (внутри класса) или 'SphereCalculator :: FOUR_THIRDS' (вне класса); глобальные константы называются «FOUR_THIRDS» .... вы определили константы класса –
Для диаметра; не используйте '+ =', просто используйте '+', иначе вы фактически удваиваете значение свойства classRadius каждый раз, когда вы вызываете 'getDiameter()' –
. Кроме того, вам не хватает '* $ this-> classRadius' - том 4/3 PI R^3 –