Ich versuche, Konstrukteure und PHP im Allgemeinen zu verstehen, aber was ich hier erreichen möchte, ist eine Möglichkeit, Volumen, Durchmesser und Fläche eines Kreises mit PI
und FOUR_THIRDS
als Konstanten in der Klasse zu berechnen.PHP: Wie berechnet man das Volumen, den Durchmesser und die Fläche eines Kreises?
Mein Code sagt immer, es gibt einen Fehler mit den Konstanten sagen, dass sie nicht definiert sind, aber ich kopierte die Methode von php.net. Dann die $radius
wird auch als undefinierte Variable angezeigt, also sollte ich $radius = 1;
irgendwo in die Klasse hinzufügen, um es zu definieren, ist das, was es bedeutet, zu definieren?
<?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>";
?>
Klasse Konstanten referenziert werden als 'self :: FOUR_THIRDS' (innerhalb der Klasse) oder' SphereCalculator :: FOUR_THIRDS' (von außerhalb der Klasse); globale Konstanten werden als 'FOUR_THIRDS' bezeichnet .... Sie haben Klassenkonstanten definiert –
Für Durchmesser; Verwenden Sie nicht '+ =', verwenden Sie einfach '+', sonst verdoppeln Sie den Wert der Eigenschaft 'classRadius' bei jedem Aufruf von' getDiameter() ' –
Außerdem fehlt Ihnen ein' * $ this-> classRadius' - Volume ist 4/3 PI R^3 –