2010-07-26 18 views
10

Me doy cuenta de que es posible definir un método de clase estático como privado y protegido en PHP. Esto permite una clase instanciada o un método público estático para acceder a sus propios métodos estáticos privados/protegidos.¿Pueden los métodos estáticos de PHP legalmente tener la visibilidad de protegidos o privados?

protected static function jumpOver () 

Sin embargo, no estoy seguro si esto es legal en el sentido del diseño OOP. No puedo encontrar ninguna información real que indique que está bien hacer esto. Me preocupa PHP puede "parchear" esto en versiones futuras si esto no es válido y romper mis scripts.

Gracias por la ayuda.

+0

'protected static function' es legítimo, se puede utilizar como método auxiliar para otros métodos estáticos. –

Respuesta

9

Lo es. Los métodos estáticos generalmente no son más que métodos de ayuda que tienen código que posiblemente no desee que sea público.

Los otros lenguajes comunes orientados a objetos que puedo pensar tienen también (C++, Java, C#). Realmente no creo que vayan a eliminar esa característica.

Además, los chicos de PHP son lentos en romper las funciones existentes, por lo que no me preocuparía demasiado por eso.

+0

uhm ... ¿no es definitiva la palabra clave que desea usar para proteger su código? – dierre

+3

@dierre: 'final' protege de anulación/herencia, pero no protege el acceso. – zneak

+0

oh, está bien. Lo siento, pensé que al decir "tener código que posiblemente no quieres que sea público" se refirió a la posibilidad de anularlo/heredarlo. – dierre

Cuestiones relacionadas