Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 13 май 2024, 12:55

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Объясните код
СообщениеДобавлено: 28 сен 2012, 15:09 
Не в сети
Зеленый

Зарегистрирован: 28 сен 2012, 15:00
Сообщения: 5
Объясните, пожалуйста, вот такой код:

Код:
$view = View::factory('welcome')
          ->bind('name', $name)
          ->bind('age', $age);


Это тоже самое что и:

Код:
$view = View::factory('welcome');
$view->bind('name', $name);
$view->bind('age', $age); 


Почему в первом случае не выдает ошибку и как это реализовано.


Последний раз редактировалось Sergey 19 окт 2012, 01:25, всего редактировалось 1 раз.
Обернул исходники в [code]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объясните код
СообщениеДобавлено: 28 сен 2012, 20:25 
Не в сети
Бывалый

Зарегистрирован: 06 авг 2012, 22:39
Сообщения: 91
это фича php5, Method Chaining называется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объясните код
СообщениеДобавлено: 28 сен 2012, 22:50 
Не в сети
Зеленый

Зарегистрирован: 28 сен 2012, 15:00
Сообщения: 5
Спасибо за подсказку!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объясните код
СообщениеДобавлено: 19 окт 2012, 00:49 
Не в сети
Новичок

Зарегистрирован: 19 окт 2012, 00:47
Сообщения: 10
Rush64 писал(а):
это фича php5, Method Chaining называется.

только это не обьясняет почему у него в одном случае ошибка а в другом нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объясните код
СообщениеДобавлено: 19 окт 2012, 01:27 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Какая ошибка? В контексте чего вы используете bind? Где используются переменные переданные через bind? Где инициализируются переменные? Тут телепатов нет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объясните код
СообщениеДобавлено: 19 окт 2012, 12:06 
Не в сети
Бывалый

Зарегистрирован: 10 авг 2012, 15:51
Сообщения: 33
проверил у себя - ошибок нет, хоть и телепатов нет, но чувствую что автор найдёт у себя не объявленную переменную
Демо-тест
Код:
$view = View::factory('/admin/page');
$view->bind('company', $company);

$view = View::factory('/admin/page')
    ->bind('company', $company);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объясните код
СообщениеДобавлено: 22 окт 2012, 22:57 
Не в сети
Зеленый

Зарегистрирован: 28 сен 2012, 15:00
Сообщения: 5
Цитата:
только это не обьясняет почему у него в одном случае ошибка а в другом нет.


как раз, все объясняет: метод Chaining;
Цитата:

проверил у себя - ошибок нет, хоть и телепатов нет, но чувствую что автор найдёт у себя не объявленную переменную
Демо-тест
Код:
$view = View::factory('/admin/page');
$view->bind('company', $company);

$view = View::factory('/admin/page')
->bind('company', $company);


Где вы проверяли? В фреймворке Kohana? Мой вопрос касался того, как это реализовать вообще.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объясните код
СообщениеДобавлено: 23 окт 2012, 01:46 
Не в сети
Бывалый

Зарегистрирован: 29 сен 2012, 00:30
Сообщения: 65
Откуда: Рига, Латвия
омбудсмен писал(а):
Мой вопрос касался того, как это реализовать вообще.


Посмотрите исходники, там все понятно расписано, с комментариями.




Подсказка: ключевой момент
Код:
return $this;

Т.е. в конце выполнения метода мы возвращаем сам объект, что позволяет опять применять к нему методы или изменить свойство.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объясните код
СообщениеДобавлено: 23 окт 2012, 16:08 
Не в сети
Зеленый

Зарегистрирован: 28 сен 2012, 15:00
Сообщения: 5
Цитата:
Посмотрите исходники, там все понятно расписано, с комментариями.




Подсказка: ключевой момент
Код:
return $this;

Т.е. в конце выполнения метода мы возвращаем сам объект, что позволяет опять применять к нему методы или изменить свойство.





Спасибо, я уже с этим разобрался.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group