Я пытаюсь разобраться с конструкторами и 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>";?>
Вам нужно определить константу FOUR_THIRDS
как плавающее значение или целочисленное значение. Вы определили как 4/3
что не приемлемо.
Следовательно, вам нужно определить как,
const PI = 3.14;
const FOUR_THIRDS = 1.33;
Поскольку вы определили константы внутри класса, он принимает его как переменную-член самого класса. Следовательно, вам нужно будет получить доступ к константам с self::PI
,
Другая проблема с вашим PHP-кодом — неправильное определение конструктора. У вас есть параметр при определении конструктора, но в основной части кода, где вы создали объект, вы не передали параметр.
Вот ссылка на исправленный код PHP: https://ideone.com/UOMUPf
Вы должны использовать константы, используя имя класса, как ClassName::ConstantName
и если вы используете в классе, то вы можете использовать как self::ConstantName
,
Итак, вы должны использовать свои константы как self::PI
а также self::FOUR_THIRDS
,