За последние 24 часа нас посетили 22029 программистов и 997 роботов. Сейчас ищут 872 программиста ...

Не могу понять фрагмент чужого кода

Тема в разделе "PHP для новичков", создана пользователем gegavat, 4 янв 2019.

  1. gegavat

    gegavat Активный пользователь

    С нами с:
    30 янв 2018
    Сообщения:
    4
    Симпатии:
    0
    Разбираюсь в скачанной библиотеке от google. Не могу понять, что значит следующий код. Почему в качестве аргумента метода передается название класса, а затем переменная (которой не существует)?
    PHP:
    1. public function from(Configuration $configuration)
    2.     {
    3.         // ...
    4.         return $this;
    5.     }
     
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @gegavat, это основы основ. В метод from можно передать исключительно экземпляр объекта Configuration.
     
  3. twim32

    twim32 Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    275
    Симпатии:
    58
    Не экземпляр объекта Configuration, а экземпляр объекта, которому принадлежит данный метод
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    А ведь могло быть и так:)
    PHP:
    1. public function from(Configuration $configuration) : ?Connect { ... }
     
  5. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @twim32, я понятия не имею и мне абсолютно без разницы какому объекту принадлежит данный метод. Собственно уточнению типа как и мне плевать на это. Я знаю только то, что этот метод не принимает ничего кроме экземпляра объекта Configuration.
     
  6. twim32

    twim32 Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    275
    Симпатии:
    58
    Ты прав. Я ступил.
    Ну, дорогой мой друг, если тебе плевать на основы ООП, то тут... моё желание помочь... уже как бы всё! А товарищ nospiou прав, учись учиться.
     
  7. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @twim32, Мэт Зандстра "РНР объекты, шаблоны и методики проектирования" стр. 50 "Уточнения типов объектов"
     
  8. twim32

    twim32 Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    275
    Симпатии:
    58
    @Valick, ты на верном пути! Читаем страницу 51.

    public function test ( [имя класса] [объект данного класса])
    {
    // пишем всё что угодно
    }

    Это значит что в эту функцию мы можем передать экземпляр только указанного класса и ничего больше.
     
  9. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    экземпляр класса
     
  10. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Попробуй провести параллели между своими высказываниями.
    Разберись для начала, что такое класс и что такое объект и когда класс перестаёт быть классом и становится объектом этого класса.

    @romach, экземпляр класса например User - это неопределённый объект, экземпляр объекта User - это конкретный объект, например Петя.

    P.S. Название главы "Уточнение типа объектов" никого не смущает?
     
    #10 Valick, 8 янв 2019
    Последнее редактирование: 8 янв 2019
  11. twim32

    twim32 Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    275
    Симпатии:
    58
    @Valiсk, я уже сказал что ошибся в первом посте.
    Мне кажется ты сам давно уже нашел ответ на свой вопрос, но душа всё равно жаждет общения...