За последние 24 часа нас посетили 56878 программистов и 1791 робот. Сейчас ищут 837 программистов ...

Подскажите с классами

Тема в разделе "PHP для новичков", создана пользователем Неугомонный, 13 ноя 2018.

  1. Неугомонный

    Неугомонный Активный пользователь

    С нами с:
    10 фев 2018
    Сообщения:
    192
    Симпатии:
    3
    Всем привет , пишу свой первый класс и вообще разбираюсь с классами, смотрю примеры в гугле и через один сайт __construct использует
    PHP:
    1. public function __construct(...)
    а на другом просто
    PHP:
    1. function __construct(...)
    сам вопрос: разве для метода __construct() нужен модификатор?
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    public – дефолтный модификатор. Если нужен какой-то др., тогда уже указываете обязательно явно.
     
  3. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    ну раз не успел напишу о другом. например для синглтонов или фабрик может понадобиться private что бы создавать класс только через методы. но имхо public лучше всегда явно указывать
     
  4. Неугомонный

    Неугомонный Активный пользователь

    С нами с:
    10 фев 2018
    Сообщения:
    192
    Симпатии:
    3
    Ага как я понимаю если я использую private function __construct($dbhost, $dbport, $dbname, $dbuser, $dbpass) данные с объекта не будут взяты $db = new DB('dbhost', 'dbport', 'dbname', 'dbuser', 'dbpass'); а будут взяты с выше указанных свойств в классе ?
    --- Добавлено ---
    Я еще плохо шарю, первый класс пытаюсь написать ))
     
    #4 Неугомонный, 13 ноя 2018
    Последнее редактирование: 13 ноя 2018
  5. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    нет такой записи это функция. есть new DB() и DB::_instance() который может вернут new self например
     
  6. Неугомонный

    Неугомонный Активный пользователь

    С нами с:
    10 фев 2018
    Сообщения:
    192
    Симпатии:
    3
    да , поправил спасибо
     
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    @Неугомонный, приватный конструктор используется, если не предполагается создавать объект извне или в принципе создавать объект (см. статические классы).
     
    #7 miketomlin, 14 ноя 2018
    Последнее редактирование: 14 ноя 2018