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:
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()
.