variable poo non method heredar php oop readability public-method

poo - public static private protected php



"Público estático" o "público estático"? (7)

Además de la respuesta de Alexei Tenitski .

I prefer static public since this way it is easier to spot [usually rare] static methods in classes.

Todos los métodos deben tener su visibilidad especificada. Por lo tanto, sabemos que cada método va a tener eso mencionado en alguna parte de la definición, la única pregunta es "¿Qué configuración es?".

Solo algunos son estáticos, por lo tanto, para cada uno debemos preguntarnos "¿Hay alguna mención de la palabra clave estática en algún lugar de la definición?". Entonces, ponga estático primero para hacer la respuesta a esa pregunta más obvia.

O, como una regla más amplia, ......... tiendo a poner ''el aspecto más extraordinario primero'' para que no omita inconscientemente las cosas al leerlas. ; o)

Prueba esta prueba

Muy rápido ... ¿Cuántos métodos estáticos hay en la Clase A?

class A { public static methodA() { } protected static methodB() { } private staticlymethodC() { } }

y cuantos métodos estáticos hay en la Clase B?

class B { public methodA() { } static protected methodB() { } static private methodC() { } }

Creo que la clase B es mucho más fácil de entender rápidamente.

Un punto menor acerca de las palabras clave de declaración de función en PHP: si tiene un método de clase que es estático, ¿la palabra clave static debe aparecer antes o después de la palabra clave de visibilidad ( public , protected , private )? Suponiendo que todos sus métodos, estáticos o no, tienen una palabra clave de visibilidad, entonces desea que la palabra clave de visibilidad permanezca en el mismo lugar en relación con la palabra clave de la function :

public function foo() {} public function bar() {} protected function baz() {} private function quux() {}

Ahora imagina que un par es estático:

public function foo() {} static public function bar() {} protected function baz() {} static private function quux() {}

Además, si un método es estático, usted quiere que eso sea lo primero que se vea, porque eso tiene un mayor impacto en el tipo de método que es incluso la palabra clave de visibilidad.

Esto es estrictamente un problema de legibilidad, ya que obviamente no tiene consecuencias funcionales o de diseño. (Eso puedo pensar)


De PSR-2:

La visibilidad DEBE declararse en todas las propiedades y métodos; resumen y final DEBEN declararse antes de la visibilidad; estática DEBE declararse después de la visibilidad. [reference]

... si le interesan las normas y convenciones de PHP Framework Interop Group.

Entonces public static no static public según ellos.


No creo que esta sea una pregunta estrictamente PHP, y por lo poco que valga la pena, siempre he preferido la consistencia de colocar primero el modificador de visibilidad. Me resulta más fácil de escanear.


Prefiero static public ya que de esta manera es más fácil detectar métodos estáticos [generalmente raros] en las clases.


Puse la visibilidad primero en cada idioma que uso que tiene modificadores de tipo.


Tiene razón en que no tiene ningún efecto en el código. Por lo tanto, depende de sus propios requisitos de estilo, o de los de su equipo, en cuanto a lo que hace. Consulte con ellos y acuerde un estilo.

Si solo estás codificando para ti, entonces debes elegir por ti mismo. La elección no es importante, pero la consistencia es.

Otra pregunta que puede hacer es: ¿debe usar ''público'' o no? Para la compatibilidad con versiones anteriores (PHP4 no tenía información oculta) cualquier cosa sin un modificador de visibilidad es pública por defecto. ¿Deberías molestarte en escribir en público si es público? Una vez más, elección personal: haz una fuerte discusión de cualquier manera y me convencerás de que tu elección es la mejor.

Personalmente, cuando reviso y borro mi propio código, me gusta poner primero el modificador de visibilidad y especificarlo incluso si es público.


Los lenguajes como Java y C # requieren que el modificador de acceso sea lo primero Editar: la línea golpeada anterior es completamente falsa. Ninguno de los dos idiomas tiene este requisito.

public static

me parece correcto Se pueden hacer argumentos para ambos enfoques y el mío es el siguiente: como "estático" califica la función en lugar del modificador de acceso, tiene más sentido decirlo

<access_modifier> static

Si lo usa al revés, el significado de "estático" es menos claro.