Я работал с фреймворком Joomla и заметил, что они используют соглашение для обозначения частных или защищенных методов (они ставят подчеркивание «_
» перед именем метода), но они явно не объявляют какие-либо методы public
, private
или protected
. Почему это? Это связано с переносимостью? Ключевые слова public
, private
или protected
недоступны в старых версиях PHP?
Почему бы не использовать в PHP «защищенный» или «частный»?
Ответы (3)
публичные, частные и защищенные - ключевые слова PHP5. К сожалению, PHP4 все еще имеет очень высокую базу установки (особенно среди служб виртуального хостинга).
вот симпатичная картинка, показывающая показатели использования за июль (текст в французкий язык). спойлер: уровень использования php4, к сожалению, по-прежнему превышает 35%.
Есть несколько веских аргументов в пользу отказа от использования private
методов и свойств здесь: http://aperiplus.sourceforge.net/visibility.php
Включает: усложняет кодирование и чтение кода. Усложняет повторное использование классов и отладку.
Я никоим образом не продан, но я хотел бы увидеть осознанное опровержение этой статьи, если таковое существует.
PHP5 внес серьезные изменения в объектную модель. Помимо поддержки видимости, есть и другие изменения. Обязательно посмотрите: