Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Обязательно ли в OOP писать перед свойствами и методами модификаторы?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Clerik
Отправлено: 01 Ноября, 2016 - 16:44:09
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Авг. 2016  


Помог: 1 раз(а)




Недавно начал изучать oop и считал, что перед каждым свойством и методом нужно ставить модификаторы public, private, protected. На одном сайте обнаружил код в нем не используются модификаторы.
Вопрос почему?
PHP:
скопировать код в буфер обмена
  1.  
  2. class CookieLover {
  3. static $loversCount = 0;//статическое свойство
  4. function __construct(){++self::$loversCount;} // увеличиваем на 1
  5. static function welcome(){ //статический метод
  6. echo 'Добро пожаловать в клуб любителей булочек!';
  7. //Никаких $this внутри статического метода!
  8. }}
  9. $vasyaPupkin = new CookieLover(); //первый объект
  10. $frosyaBurlakova = new CookieLover(); //второй объект
  11. print ('Текущее количество любителей булочек: '.
  12. CookieLover::$loversCount);
  13. print (CookieLover::welcome());
  14.  
 
 Top
Мелкий Супермодератор
Отправлено: 01 Ноября, 2016 - 16:56:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Наследие php4, где всё было public. Поэтому это не является ошибкой парсера, если видимость не объявлена, то считается как public. Ключевое слово var для свойств оттуда же.

psr-2 явным образом требует
Цитата:
Visibility MUST be declared on all properties and methods

Поэтому указывать всегда.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB