>> Bet būtų vienas klausimas - kokia prasmė naudoti private ar protected?
http://php.net/manual/en/language.oop5.visibility.php
tai, kas ir kaip gali naudoti ta metodą/parametrą. OOP esmė (viena iš) atsiranda, kai pradedi naudoti paveldėjimą. Pvz turi objektus Darbininkas, šefas, ir jie turi bendrą tėvinį objektą Darbuotojas, kuriame yra laikomi bendri abiems darbuotojams metodai. public, private ar protected, panaudoti Darbuotojas objekte nusako, ar darbininko objekte/išorėje, bus galima naudotis ta funkcija.
O prasmė ta, kad suteikia saugumo. T.y. taip gali užsitikrinti, kad šefas nepradėtų naudoti tik vidinių darbuotojo metodų. Kartais metodo iškvietimas ne iš ten kur priklauso gali pridirbti nemažai bėdų, kurias laaaabai sunku atsekti. :)