PHP oferuje 3 modyfikatory dostępu do właściwości i metod: prywatne (private), chronione (protected) i publiczne (public). Właściwości i metody prywatne nie są dostępne z poza obiektu, jak również z metod obiektu dziedziczącego. Z jednym wyjątkiem… Mogą być pobierane/modyfikowane z poziomu metod obiektu, który jest instancją tej samej klasy. Więcej na ten temat w manualu: PHP manual
Jak widać, Foo::modifyProperty zmienił prywatną właściwość innego obiektu. Właściwie type-hinting nie jest tu wymagane, ale jego brak może wprowadzić wiele zamieszania :-)
Pomimo, że PHP oferuje takie rozwiązanie, szczerze odradzam stosowanie go w codziennej praktyce…
1
komentarz