Creo que te estás "haciendo bolas" como dicen en no se donde ( ya no distingo España de México ).
El tema es más o menos así :
Vos querés que un atributo sea de solo lectura? Perfecto, declaron 'private' al atributo.
Luego, solo hacés un método que devuelva el valor del atributo, y a este método, declaralo 'public'. Y ya. Así te asegurás que un atributo es solo lectura.
Con PHP5, sería mejor que nos olvidemos de este tipo de métodos como el que expliqué más arriba, porque ya son innecesarios, habiendo un sistema de Public/private/protected, ahora no es tan "mala praxis" el asignar directamente a un atributo. Además, hay que aprovechar las funciones
__set() y __get().
Saludos. !