Byłem ciekawy czy ten słynny GPT poradzi sobie z tematem. Poniżej jego odpowiedź ;)
I taka porada dla @telepatia - zadając pytanie postaraj się opisać błąd, wskazać dlaczego uważasz, że coś nie działa, co się dzieje nietypowego itp. Bo samo "czemu jest źle" to tak dość kiepsko :P
W podanej klasie jest kilka błędów:
- W deklaracji pola
return float; nie ma sensu - nie powinno to być w tej części klasy.
- W metodzie
brutto() zmienna $cena jest zdefiniowana jako zmienna lokalna, a nie odwołuje się do pola cena klasy. Aby odwołać się do pola klasy, należy użyć operatora $this-> przed nazwą pola.
- W wywołaniu właściwości klasy w metodzie
brutto() brakuje operatora -> przed nazwą właściwości.
Poprawiony kod klasy Cennik powinien wyglądać tak:
Kopiuj
class Cennik {
public $cena = 20;
public $vat;
public $dochodowy;
public function brutto() {
return $this->vat * $this->cena;
}
}
$aktualnycennik = new Cennik();
$aktualnycennik->vat = 22;
echo "cena netto: {$aktualnycennik->cena} zł<br>";
echo "cena brutto: {$aktualnycennik->brutto()} zł<br>";
W tym kodzie usunięto zbędne elementy, poprawiono błędy składniowe i zmieniono sposób wywołania właściwości klasy w metodzie brutto().