Почему бы не использовать в PHP «защищенный» или «частный»?

Я работал с фреймворком Joomla и заметил, что они используют соглашение для обозначения частных или защищенных методов (они ставят подчеркивание «_» перед именем метода), но они явно не объявляют какие-либо методы public, private или protected. Почему это? Это связано с переносимостью? Ключевые слова public, private или protected недоступны в старых версиях PHP?


person Steven Oxley    schedule 13.10.2008    source источник


Ответы (3)


публичные, частные и защищенные - ключевые слова PHP5. К сожалению, PHP4 все еще имеет очень высокую базу установки (особенно среди служб виртуального хостинга).

вот симпатичная картинка, показывающая показатели использования за июль (текст в французкий язык). спойлер: уровень использования php4, к сожалению, по-прежнему превышает 35%.

person Owen    schedule 13.10.2008
comment
PHP4 сгенерирует предупреждение E_STRICT. - person Darryl Hein; 13.10.2008
comment
E_STRICT был введен в PHP5, если я не понимаю, что вы говорите - person Owen; 13.10.2008
comment
Какое-то время все было наоборот: первые несколько выпусков PHP 5 жаловались на использование var. - person ; 02.12.2008
comment
График, который вы связали, заканчивается в 2008 году. С другой стороны, 4.3 и 4.4 упоминаются отдельно. В любом случае, если вы посмотрите на более актуальную статистику, она будет совсем другой: w3techs.com / technologies / details / pl-php / all / all Только 10% PHP4 - person KingCrunch; 29.11.2010

Есть несколько веских аргументов в пользу отказа от использования private методов и свойств здесь: http://aperiplus.sourceforge.net/visibility.php

Включает: усложняет кодирование и чтение кода. Усложняет повторное использование классов и отладку.

Я никоим образом не продан, но я хотел бы увидеть осознанное опровержение этой статьи, если таковое существует.

person naught101    schedule 28.11.2010
comment
+1 за очень интересную (и убедительную) ссылку. Итак, какой путь вы выбрали за последние два года? - person akTed; 02.02.2013
comment
Хех, последние два года я мало занимался программированием PHP: P. но я вообще за то, чтобы людям давали достаточно веревки :) - person naught101; 03.02.2013

PHP5 внес серьезные изменения в объектную модель. Помимо поддержки видимости, есть и другие изменения. Обязательно посмотрите:

классы и объекты PHP 4

классы и объекты PHP 5

person ruquay    schedule 13.10.2008