PHP blad w OOP

0

Mam taki kod, wywala mi blad nie wiem dlaczego, przyznam sie ze dopiero sie ucze i nie wiem co tutaj jest nie tak?

<?php

class Szymon1
{
    public static $zmiennaStatycznaPubliczna=10;
    static private $zmiennaStatycznaPrywatna=10;
    public $zmiennaPubliczna=10;

    public function setZmienna($args){
        self::$zmiennaStatycznaPrywatna = $args;
        $zmiennaPubliczna=$args;
    }
    public function getZmienna(){
        return self::$zmiennaStatycznaPrywatna;
    }
    public function getPubliczna(){
        return $zmiennaPubliczna; //blad
    }

}
Szymon1::$zmiennaStatycznaPubliczna=11;
echo "".Szymon1::$zmiennaStatycznaPubliczna."<br />";

$obiekt = new Szymon1;
$obiekt->setZmienna(12);
$wyswietl = $obiekt->getZmienna();
echo $wyswietl."<br />";
echo $obiekt->getPubliczna()."<br />";
?>

blad wywala mi przy 17 lini

0

dobra wiem, jak sie uzywa $This->ZMIENNA nie wzstawia sie przed zmienna $

0

@Szymon Zachariasz: ale ciekawostka, bo to też działa w PHP:


class Foo {
    public $bar;
}

$foo = new Foo();
$foo->bar = 'Test';

$zmienna = 'bar';

echo $foo->$zmienna;

Jak użyjesz $ po strzałce, to PHP spróbuje odczytać zmienna z obiektu ($foo), której nazwa jest taka, jak wartość zmiennej po strzałce ($zmienna). Nie mniej jednak, to nie jest najlepsza praktyka i powinno się jej unikać, jeżeli jest taka możliwość.

1 użytkowników online, w tym zalogowanych: 0, gości: 1