He estado trabajando con el framework Joomla y me he dado cuenta de que usan una convención para designar métodos privados o protegidos (ponen un guión bajo "_
" delante del nombre del método), pero no declaran explícitamente ningún método public
, private
, o protected
. ¿Por qué es esto? ¿Tiene que ver con la portabilidad? ¿Las palabras clave public
, private
, o protected
no están disponibles en versiones anteriores de PHP?¿Por qué no utilizar 'protegido' o 'privado' en PHP?
Respuesta
público, privado y protegido son palabras clave PHP5. desafortunadamente, PHP4 todavía tiene una base de instalación muy alta (especialmente entre los servicios de alojamiento compartido).
aquí hay un pretty pic mostrando las tasas de uso de julio (texto en francés). spoiler: php4 todavía tiene una tasa de uso de más del 35%.
PHP5 introdujo algunos cambios considerables en el modelo de objetos. Entre la visibilidad de apoyo, hay varios otros cambios. Asegúrese de revisar:
Hay algunos buenos argumentos para no usar métodos y propiedades private
aquí: http://aperiplus.sourceforge.net/visibility.php
Incluye: hace que el código de codificación y lectura más difícil. Hace que las clases de reutilización y la depuración sean más difíciles.
No he sido vendido de ninguna manera, pero me gustaría ver una refutación informada de ese artículo, si existe.
- 1. no se puede definir el constructor como protegido o privado. ¿por qué?
- 2. C# campo protegido a privado, agregar propiedad, ¿por qué?
- 3. Bloque privado/protegido en Ruby?
- 4. ¿Por qué es posible llamar a un método/variable de CSharp protegido o privado?
- 5. ¿Cuándo deberíamos considerar el uso privado o protegido?
- 6. Objective-C - Privado vs Protegido vs Público
- 7. ¿Qué elige, protegido o interno?
- 8. ¿Por qué el acceso de reflejo es miembro protegido/privado de clase en C#?
- 9. ¿Por qué C no tiene paquete privado?
- 10. ¿Por qué está protegido CollectionView.CollectionChanged?
- 11. ¿Por qué las personas a menudo omiten público/privado/protegido al declarar una clase?
- 12. ¿Por qué no utilizar Html.EditorForModel()
- 13. ¿Por qué Privado vs Protegido por cómo se crea un evento Click en un botón en ASP.NET usando VB.NET?
- 14. ¿Cuál es la diferencia entre "privado" e "interno protegido"?
- 15. ¿Por qué escribir explícitamente "privado"?
- 16. Doxygen: ocultar el método privado/protegido ... y consejos
- 17. Por qué utilizar Intellij, o qué hacer durante la evaluación
- 18. ¿Por qué no desea utilizar Cloud Computing
- 19. ¿Por qué necesitamos herencia Privada o Protegida en C++?
- 20. Cuándo o por qué utilizar las importaciones relativas en Python
- 21. Por qué no utilizar Spring's OpenEntityManagerInViewFilter
- 22. ¿Por qué no utilizar archivos XIB?
- 23. Cuándo utilizar el registro de entrada privado
- 24. clases PHP ¿por qué utilizar palabra clave pública?
- 25. ¿Por qué no es privado el constructor de String()?
- 26. ¿Cómo decidir si un método será privado, protegido, interno o público?
- 27. ¿Por qué no utilizar AES para el cifrado de contraseñas en PHP?
- 28. ¿Por qué no funciona strip_tags en PHP?
- 29. ¿Por qué necesitamos un constructor privado?
- 30. ¿Cuáles son las variables sin público privado o protegido declarado como?
PHP4 generará una advertencia E_STRICT. –
E_STRICT se introdujo en PHP5, a menos que malinterprete lo que dices – Owen
Lo contrario sucedió durante un tiempo: las primeras versiones de PHP 5 se quejaron cuando se usaba "var". – flussence