class class1 { ... }
Przetestowałem działanie tej klasy, tworząc klasę dziedziczącą:
class class2 extends class1 { ... }
... i oczywiście tworząc instancję tej klasy, która dziedziczyła, no i sobie ją przetestowałem. Kiedy już testowanie dobiegło końca, zacząłem używać tej klasy i kiedy utworzyłem dwie klasy dziedziczące po class1 (oczywiście nazwy klas były inne), to okazało się, że coś nie działa.
Nie działało dlatego, że myślałem, że jeżeli w class1 zadeklaruje składową statyczną, to ta wartość będzie taka sama tylko w jednej klasie dziedziczącej, a jest taka sama dla wszystkich klas dziedziczących po class1.
Innymi słowy, spodziewałem się, że jeżeli napisałbym taki kod:
class class1 { } class class2 extends class1 { } class class3 extends class1 { } class2::$v = "abc"; class3::$v = "def";
... to mi wypisze "abc", bo myślałem, że w klasie class2 będzie zapisana wartość "abc", a w klasie class3 będzie "def", a tymczasem class2 i class3 mają tą samą wartość.
Mam takich zmiennych statycznych w tej klasie bardzo dużo więc moje pytanie brzmi, jak najszybciej naprawić ten błąd, żeby nie musieć za dużo pisać od nowa?