Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конструктор __construct(MySecond $s) 
:(
    Опции темы
vins32
Дата 21.10.2014, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 12.5.2009
Где: Ukraine

Репутация: нет
Всего: нет



Здравствуйте, собственно начал изучать ООП + Zend 2
Интересует код
Код

$di = new Zend\Di\Di;    
class MyFirst{
    public $second;

    public function __construct(MySecond $s)
    {
        $this->second = $s;
    }
}

class MySecond{
    public function get()
    {
        echo "Hello!!!";
    }

    public function __construct()
    {

    }
}

$f = $di->get('MyFirst');
$f->second->get();


Код в прицепе понятен не пойму только 1 кусок
Код

public function __construct(MySecond $s)
{
    $this->second = $s;
}        


Не пойму что за первый параметр MySecond в конструкторе класса MyFirst и как он связан с классом MySecond ниже по коду.
Прошу помощи, расскажите или линк на инфу.


Это сообщение отредактировал(а) vins32 - 22.10.2014, 18:32
PM MAIL WWW   Вверх
bars80080
Дата 22.10.2014, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(vins32 @  21.10.2014,  22:55 Найти цитируемый пост)
что за первый параметр MySecond в конструкторе класса MyFirst и как он связан с классом MySecond ниже по коду

это жёсткая проверка типа входящей переменной. если она не является объектом класса MySecond (либо его потомка), то получишь эксепшн
PM MAIL WWW   Вверх
vins32
Дата 22.10.2014, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 12.5.2009
Где: Ukraine

Репутация: нет
Всего: нет



Прошу немного по конкретные, что-то не уловил smile 
PM MAIL WWW   Вверх
PavelSvoboda
Дата 22.10.2014, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 30.11.2010
Где: Львов

Репутация: 1
Всего: 1



Клас ето тип даних. $s типа MySecond. так же как тип int , float, double ... , только ето свой созданий тип
PM MAIL   Вверх
vins32
Дата 22.10.2014, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 12.5.2009
Где: Ukraine

Репутация: нет
Всего: нет



Вроде уловил, получается жёсткая привязка к классу, если не указан другой класс (не MySecond) в котором нет метода get() то Exception
теперь понял почему 
Код

$f->second->get();

Класс MySecond присвоился  свойству second в классе MyFirst
Спасибо!
PM MAIL WWW   Вверх
bars80080
Дата 23.10.2014, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



да, смысл здесь такой: если сторонний разработчик захочет воспользоваться существующей наработкой и передать в MyFirst какой-то объект, то он обязан будет сделать этот объект типом MySecond. соответственно, мы гарантировано знаем, что всё (свойства, методы) что свойственно объекту MySecond будет реализовано в переданном объекте и можно смело пользоваться этими свойствами и методами.
так сказать - дисциплина разработки
PM MAIL WWW   Вверх
Aliance
Дата 27.10.2014, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.