класс — PHP: Как рассчитать объем, диаметр и площадь круга?

Я пытаюсь разобраться с конструкторами и PHP в целом, но здесь я пытаюсь добиться способа вычисления объема, диаметра и площади круга с помощью PI а также FOUR_THIRDS как константы в классе.

Мой код постоянно говорит, что с константами есть ошибка, что они не определены, но я скопировал метод из 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>";?>

0

Решение

Вам нужно определить константу FOUR_THIRDS как плавающее значение или целочисленное значение. Вы определили как 4/3 что не приемлемо.

Следовательно, вам нужно определить как,

const PI = 3.14;
const FOUR_THIRDS = 1.33;

Поскольку вы определили константы внутри класса, он принимает его как переменную-член самого класса. Следовательно, вам нужно будет получить доступ к константам с self::PI,

Другая проблема с вашим PHP-кодом — неправильное определение конструктора. У вас есть параметр при определении конструктора, но в основной части кода, где вы создали объект, вы не передали параметр.

Вот ссылка на исправленный код PHP: https://ideone.com/UOMUPf

1

Другие решения

Вы должны использовать константы, используя имя класса, как ClassName::ConstantNameи если вы используете в классе, то вы можете использовать как self::ConstantName,

Итак, вы должны использовать свои константы как self::PI а также self::FOUR_THIRDS,

0