Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
10 / 10 / 2
Регистрация: 12.04.2011
Сообщений: 323

Цепочки вызовов методов

14.09.2013, 20:05. Показов 4001. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

В общем чет нагуглить не получилось, хотя как мне казалось задача тривиальная.
Вот простой понятный пример
PHP
1
$news->title->set('Заголовок');
Метод set() в конце вернет $this (объекта title), а я хочу вернуться опять в объект news чтобы дальше с тем объектом работать не разрывая цепочку это реально?

Т.е. как бы примерно так
PHP
1
$news->title->set('Заголовок')->тутНазадВNews->text->set()
Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.09.2013, 20:05
Ответы с готовыми решениями:

Просмотр цепочки вызовов
Функция func1 вызывает функцию func2. Функция func2 вызывает функцию func3. А в функции func3 происходит сбой и функция показывает...

Отслеживание вызовов методов
Здравствуйте, имеется класс с методами: public class ClassA { public ClassA() { } ...

Слушатель вызовов методов
Доброго времени суток. Может кто сталкивался. Есть большое приложение. Необходимо повесить слушатель вызова методов. Чтобы в него на этапе...

3
 Аватар для koza4ok
632 / 440 / 67
Регистрация: 19.09.2012
Сообщений: 1,632
14.09.2013, 21:05
PHP
1
2
3
4
5
6
7
8
9
10
11
class Foo{
    public function set(){
        echo 'set run'.'<br>';
        return $this;   
    }
    public function goaway(){
        echo 'go away Mr';
    }
}
 $mr=new Foo;
 $mr->set()->goaway();
решение -возврат this
1
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
15.09.2013, 08:48
Цитата Сообщение от furyon Посмотреть сообщение
Метод set() в конце вернет $this (объекта title), а я хочу вернуться опять в объект news чтобы дальше с тем объектом работать не разрывая цепочку это реально?
Т.е. есть как минимум два разных объекта: один в $news, а второй вылезает из $news->title ?
Стало быть, объект в $news постоянно ссылается на объект в $title. Чтобы вернуться обратно к $news из $title, нужно, чтобы $title знал, кому он принадлежит. Но тогда возникнет кольцевая ссылка $news->title->news->title..., что не есть хорошо в плане архитертуры и сбора мусора.
1
 Аватар для koza4ok
632 / 440 / 67
Регистрация: 19.09.2012
Сообщений: 1,632
15.09.2013, 13:00
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 class Title{
     private $context;
    public function set(){
         echo 'method Title::set';
         return $this->context;
         
     }
     public function __construct($context){
        //сдесь лучше обработать ситуацию context не будет передан
        //Warning: Missing argument 1 for Title::__construct()
        //наверно через массив arguments
         //var_dump($context);
         $this->context=$context;
        // var_dump($this);
     }
     
 }
 class News{
     
     function __construct(){
         $this->title=new Title($this);
     }
     function text(){
         echo 'method News::text';
     }
 }
 
 
 $news=new News();
$news->title->set()->text();
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.09.2013, 13:00
Помогаю со студенческими работами здесь

Чем событие отличается от вызовов методов
Объясните, чем отличается событие от простого вызова методов? Насколько я понял, событием можно вызвать сразу несколько методов, но ведь...

Очередь вызовов методов в веб-сервисе
Есть два программных комплекса. На одном, поддерживаемом нашей конторой, есть веб-сервис, который работает как RPC. Методы данного сервиса...

Использование делегатов для выполнения цепочки методов.
Есть класс Rules.cs, в нем есть матрица (string matrix), размер которой определяется динамически. При запуске программы, пользователь...

STL: найти все максимальные цепочки подряд идущих положительных чисел с указанием длины каждой цепочки
Создать массив длины N (число N вводится с клавиатуры). Заполнить массив рандомно. Найти все максимальные цепочки подряд идущих...

Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе работу этих методов
Реализация методов класса. Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru