Помогите понять...

Тема в разделе "PHP", создана пользователем sashalg, 10 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. sashalg

    sashalg Читатель

    Заблокирован
    Регистр.:
    21 мар 2008
    Сообщения:
    49
    Симпатии:
    7
    Тут как то рылся в скриптах и наткнулся на такие записи:

    функция()->функция()->функция('tra-ta-ta');

    Что означает и для чего такая реализация.
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    890
    Симпатии:
    558
    Читаем про ООП и классы

    http://forum.vingrad.ru/faq/topic-158300.html
    http://wm-help.net/my-articles/article/how-use-classes-in-php.htm
    http://www.php.su/learnphp/phpoo/
    http://www.compdoc.ru/internet/php/php-oop-or-procedur/
     
  3. sashalg

    sashalg Читатель

    Заблокирован
    Регистр.:
    21 мар 2008
    Сообщения:
    49
    Симпатии:
    7
    Вот только не надо меня кормить доками. Я пишу классами уже давно, но вот такую запись встретил первый раз.
     
  4. alica

    alica

    Регистр.:
    28 июл 2008
    Сообщения:
    243
    Симпатии:
    76
    Я могу конечно ошибатся, но такой тип наследования поддерживат только PHP 5
     
  5. sashalg

    sashalg Читатель

    Заблокирован
    Регистр.:
    21 мар 2008
    Сообщения:
    49
    Симпатии:
    7
    Ну да. Ковыряю Zend Wramework и никак не пойму принцип такой записи... и как это реализовано... и вообще зачем это.

    я могу понять такую запись как: $a->b->c(); или $a->b->c = 10;
    но я никак не могу понять вот такое: $a->b()->c()->d('hello'); или a()->b()->c('hello');

    Вот и решил поинтересоваться у знающих людей. Может я для себя америку открою!
     
  6. alica

    alica

    Регистр.:
    28 июл 2008
    Сообщения:
    243
    Симпатии:
    76
    Второй тип более гибкий... как раз то что нужно FrameWork'ку.

    При
    $a->b()->c()->d('hello');
    Вы можете поменять условия еще b() и c(), что в конечном итоге все это повлияет на d('hello');.
     
  7. sashalg

    sashalg Читатель

    Заблокирован
    Регистр.:
    21 мар 2008
    Сообщения:
    49
    Симпатии:
    7
    Аааа. То есть по русски говоря я могу инициировать определённую последовательность классов и получить конечный результат по результату инициированных предшественников. Я правильно понял?
     
  8. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    типа того.
    рассмотрим на примере:
    PHP:
    echo $XPath->query('//a/@href')->item(0)->value;
    PHP:
    $DOMNodeList_a_href=$XPath->query('//a/@href');
    $first_a_href=$DOMNodeList_a_href->item(0);
    echo 
    $first_a_href->value;
    как видим результат вовращаемый каждой из функцией, представляет собой объект.И мы не обязаны сохранять его в темповую переменую, если он нам нужен только для одного действия, а можем сразу вызвать необходимый нам метод у него
     
  9. aleksey_php

    aleksey_php Создатель

    Регистр.:
    25 ноя 2008
    Сообщения:
    12
    Симпатии:
    1
    $a->b()->c()->d('hello') используется для передачи объекта по цепочке.
     
  10. aibar

    aibar Создатель

    Регистр.:
    4 май 2008
    Сообщения:
    18
    Симпатии:
    1
    Помогите плиз. Хотел тему открыть - не дает, гад, форум)))

    Вообщем, скрипт - дле. Хочу туда инклудить файл php с другого сайта(сервера), не получается, ошибку выадет скрипт. Где-то прочитал, что это не дает сделать настройка сервера. Так и не понял, где и что нужно менять, на php.ini или апач надо копать?
    Кстати, не получается и rss сделать. Помогите, плиз! :)
     
Статус темы:
Закрыта.