Witam,
do klasy, czy do obiektu?
Ogólna zasada jest taka, że muszą być publiczne.
Następnie jeśli to ‘zmienna’ obiektu, to odwołujesz się poprzez nazwę obiektu i tzw. wyłuskanie (->) oraz nazwa zmiennej bez dolara, czyli np. $obiekt->zmienna.
Natomiast jeśli to ‘zmienna’ statyczna, czyli klasy, to odwołujesz się przez nazwę klasy (nie obiektu) i operator klasowy ( :: ) oraz nazwa ‘zmiennej’ z dolarem, czyli np. Klasa->$zmienna;
Jeśli do klasy, to rozumiem, że jest ta ‘zmienna’ statyczna? Jeśli tak, to wtedy robisz tak:
class Klasa
{
static public $zmienna = 0 ;
}
Klasa::$zmienna = 0;
echo Klasa::$zmienna;
Natomiast jeśli jako zmienna obiektowa, to możliwe, że pominąłeś dać jako public, czyli np.:
class Klasa
{
public $zmienna = 0;
}
$obiekt = new Klasa();
$obiekt->zmienna = 2;
echo $klasa->zmienna;
Możesz mieć nawet 2 takie rodzaje ‘zmiennych’: obiektowe i klasowe:
class Klasa
{
static public $statyczna = 0;
public $zmienna = 0;
}
$obiekt = new Klasa();
$obiekt->zmienna = 2; //odwołanie do 'zmiennej' obiektu
Klasa::$statyczna = 2; // odwołanie do 'zmiennej' klasy
echo 'zmienna obiektu: '. $obiekt->zmienna;
echo 'zmienna klasy: '.Klasa::$statyczna;
Z tym, że musisz pamiętać, ze te ‘zmienne’ klasy tyczą się nie obiektu a klasy i mogą np. spełniać rolę liczników stworzonych obiektów.
Zauważ, że pisze ‘zmienne’ w apostrofach, bo w obiektach są to pola nie zmienne ;p.
Zapraszam na mój profil blogowy, gdzie możesz zobaczyć kod klas/obiektów, z użyciem takich pól (zmiennych).