Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Объясните код
http://forum.kohanaframework.su/viewtopic.php?f=31&t=391
Страница 1 из 1

Автор:  омбудсмен [ 28 сен 2012, 15:09 ]
Заголовок сообщения:  Объясните код

Объясните, пожалуйста, вот такой код:

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


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

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


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

Автор:  Rush64 [ 28 сен 2012, 20:25 ]
Заголовок сообщения:  Re: Объясните код

это фича php5, Method Chaining называется.

Автор:  омбудсмен [ 28 сен 2012, 22:50 ]
Заголовок сообщения:  Re: Объясните код

Спасибо за подсказку!

Автор:  Kurk_SS [ 19 окт 2012, 00:49 ]
Заголовок сообщения:  Re: Объясните код

Rush64 писал(а):
это фича php5, Method Chaining называется.

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

Автор:  Sergey [ 19 окт 2012, 01:27 ]
Заголовок сообщения:  Re: Объясните код

Какая ошибка? В контексте чего вы используете bind? Где используются переменные переданные через bind? Где инициализируются переменные? Тут телепатов нет

Автор:  nixon [ 19 окт 2012, 12:06 ]
Заголовок сообщения:  Re: Объясните код

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

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

Автор:  омбудсмен [ 22 окт 2012, 22:57 ]
Заголовок сообщения:  Re: Объясните код

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


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

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

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


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

Автор:  Zorato [ 23 окт 2012, 01:46 ]
Заголовок сообщения:  Re: Объясните код

омбудсмен писал(а):
Мой вопрос касался того, как это реализовать вообще.


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




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

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

Автор:  омбудсмен [ 23 окт 2012, 16:08 ]
Заголовок сообщения:  Re: Объясните код

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




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

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





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

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/