Для меня как для разработчка принципиальная разница, потому что обязательно какой-нибудь нехороший человек, обязательно попытается в обход setB подставить напрямую. Учитывая то, что в дальнейшем над $this->b вполне могут потребоваться несколько более сложные манипуляции, потом весь код начнет "ехать". А так даже если он решит поставить public. То поскольку эта часть кода "моя" при commite я сразу увижу что ее кто-то правит, и этот кто-то получить по наглой рыжей морде
Greg1978 Не правильно, но и ладно, все равно я впринципе согласен dAllonE А вот это уже жалобы, которые к реальности не имеют отношения. Черный ящик - это когда я сделал MyClass.java (или MyClass.cpp) и прошелся компайлером и получил бинарники (+- для джава и си). А в случае с PHP говорить пока о черных ящиках рановато. Поэтому при наличии StarTeam, CVS или что вы там используете, вам все равно придется идти и давать по наглой рыжей морде, ну просто потому, чтто он захочет изменить private на public. Поэтому, как я и говорил ранее, или javadoc (я вот не в курсе, в php есть такое средство?) или по-другому описанная модель (UML?) и доведенная до ума другого разраба (ШОБ не лез). Уф, много писать тяжело
Функция работает быстрее аналогичного класса. Классы имеют приемущество, когда надо их использовать много и сразу.
obsrv, да есть phpDocumentor. Понимаете дело в том, что если там стоит public, то человек сразу решит "Переменную можно ставить как душе угодно", большая вероятность, что он даже и не докрутит скролл до setB. Если же там стоит private/protected - более-менее думающий разработчик трогать это в чужом коде не будет. Ну а для стажеров останется Выше описанное средство. Greg1978, какие? Да какие угодно Например у нас есть еще переменная $a, которая также зависит от переменной $b Или эта самая $b является еще и count'ом какого-нить товара и нам нужно потом еще и в куку/сессии etc. записать значение. Много в общем всего можно придумать.
Да любые. Приведение значения к валидному, например. Скажем, ввели дату в формате dd.mm.yyyy а надо то же самое через слэш - dd/mm/yyyy. У меня сейчас как раз такой случай, правда на Java а не php.