Есть дерево наследования классов A -> B -> C -> D -> ... Я хочу, чтобы каждый класс имел свою собственную статическую переменную $c. Но я не хочу в каждом классе объявлять её отдельно (static protected $x;). Есть ли способ автоматизировать этот процесс? Можно ли что-нибудь написать в самом старшем классе A, чтобы все его наследники обладали собственной переменной?
Я в начале подумал, что можно в каждом классе задавать trait Foo; - но это не работает, потому что с помощью traits можно присваивать только функции, но не переменные.
Интересует именно собственная переменная, а не одна, наследуемая всеми детьми от своего родителя.