• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

oop PHP Błąd przy dziedziczeniu

0 głosów
130 wizyt
pytanie zadane 26 kwietnia 2020 w PHP przez creend Gaduła (4,700 p.)
<?php
declare(strict_types=1);
class Ball{
    protected const PI = 3.14;
    protected float $radius;
    private string $name;
    public function __construct(float $r,string $n="Ball"){
        $this->radius=$r;
        $this->name=$n;
    }
    public function getVolume(): float{
        return (4/3)*self::PI*($this->radius**3);
    }
    public function getFieldOfSurface(): float{
        return 4*self::PI*($this->radius**2);
    }
}
class Circle extends Ball{
    private string $name;
    public function __construct(string $n="Circle"){
        $this->name=$n;
    }
    public function getCircuit(): float{
        return 2*self::PI*$this->radius;
    }
    public function getField(): float{
        return self::PI*($this->radius**2);
    }
}
$ball = new Ball(9.5);
$circle = new Circle();
print_r($ball);
print_r($circle);
var_dump($ball->getVolume());
var_dump($ball->getFieldOfSurface());
var_dump($circle->getCircuit());
var_dump($circle->getField());

?>

Chcę napisać program gdzie klasa Circle dziedziczy po klasie ball promień i liczy dla siebie Obwód i Pole a dla Kuli objętość i pole powierzchni. Kod działa tylko dla funkcji klasy Ball a dla funkcji dla klasy Circle wywala taki błąd: Fatal error: Uncaught Error: Typed property Ball::$radius must not be accessed before initialization in D:\php\oop6.php:25      
Stack trace:
#0 D:\php\oop6.php(37): Circle->getCircuit()
#1 {main}
  thrown in D:\php\oop6.php on line 25 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
3 odpowiedzi 610 wizyt
pytanie zadane 25 października 2017 w PHP przez `Krzychuu Stary wyjadacz (13,940 p.)
+1 głos
1 odpowiedź 234 wizyt
pytanie zadane 11 lutego 2022 w PHP przez ZnaQu Nowicjusz (130 p.)
0 głosów
1 odpowiedź 406 wizyt
pytanie zadane 27 lutego 2018 w PHP przez Daniel90 Pasjonat (17,970 p.)

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...