ФорумПрограммированиеPHP для идиотов → ООП в PHP5

ООП в PHP5

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 ноября 2010 г. 18:55, спустя 23 секунды

    SpartakuS, про интерфейсы не очень давно р2д2 выразился великолепно, попробую сейчас найти
    Сапожник без сапог
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 7 ноября 2010 г. 18:55, спустя 17 секунд

    Жзненный пример моего изменения привел мастер)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 ноября 2010 г. 18:56, спустя 20 секунд

    Mars, тебе, вот - http://pyha.ru/forum/topic/1648.msg28183#msg28183
    Сапожник без сапог
  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz 7 ноября 2010 г. 18:57, спустя 1 минуту 2 секунды


    Mars, http://phpforum.ru/index.php?s=fecca941a1e5d4caba4109af75f6bffa&showforum=129
    Я вполне серьезно. Здравые статьи от ирбис хуем.
    С помощью интерфейсов ты задаешь необходимый функционал. Вот твой пример.
    /*interface Int1 {
             function func1();
         }
         interface Int2 {
             function func2();
         }*/
         class MyClass /* implements Int1, Int2*/ {
             public function func1() {
                 echo 1;
             }
             public function func2() {
                 echo 2;
             }
        }
        $obj = new MyClass;
        $obj->func1(); // Выводит 1
        $obj->func2(); // Выводит 2

    угу. 12
    А так?
    interface Int1 {
             function method1();
         }
         interface Int2 {
             function func2();
         }
         class MyClass /* implements Int1, Int2*/ {
             public function func1() {
                 echo 1;
             }
             public function func2() {
                 echo 2;
             }
        }
        $obj = new MyClass;
        $obj->func1(); // Выводит 1
        $obj->func2(); // Выводит 2



    12
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 7 ноября 2010 г. 18:59, спустя 2 минуты 32 секунды

    что такое поле? чем оно отличается от метода? если будет $obj->userGetter = function($id) { return DB::users->getById($id);};

    можно и так, жопа в том, что для интерфейсного взаимодействия объектов нужно описывать публичные методы, и они должны быть реально методами. то есть можно в поле записать функцию (если язык позволяет), но нельзя в метод записать статическое значение. Потому что иначе не будет смысла в интерфейсах.
    Спустя 54 сек.
    красиво, спиздил или не поленился написать это?)

    да хуле там писать
    не всё полезно, что в swap полезло
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 7 ноября 2010 г. 19:02, спустя 2 минуты 37 секунд

    phpdude, ну найди.
    Mars, блять. В интерфейсах ты указываешь какие методы и переменные должны быть в классах работающих с помощью этих интерфейсов.
    То есть если у тебя есть интерфейс велосипед и в этом интерфейсе будут переменные педали, руль, колесо переднее, колесо заднее, то класс гоночный велик обязан будет содержать эти педали, руль и колеса. Однако если ты сделаешь класс супервелик под интерфейсом велосипед и твой велик будет без педалей, то это будет уже не велик и вылетит ошибка.
    Спустя 46 сек.
    Mars, бля имплементсы раскоменть.
    Спустя 105 сек.
    phpdude, огонь) Только это тимур, а не r2d2)
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 7 ноября 2010 г. 19:03, спустя 1 минуту 27 секунд

    не совсем хороший пример, паста заумная а код не полный, сделай мне полный пример интерфейса в коде пхп пожалуйста

    а не буду. подумай лучше о том, почему компьютеры собирают из карточек, а не из транзисторов, и почему когда ты меняешь видеокарту на другую ты точно уверен что если она встала то заработает. это охуенный плюс от разработчиков кстати - интерфейсы PCI-E, PCI, AGP, USB и т.д.
    Почему ебаные флешки всегда и везде работают куда ни воткни?
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 ноября 2010 г. 19:06, спустя 2 минуты 57 секунд

    можно и так, жопа в том, что для интерфейсного взаимодействия объектов нужно описывать публичные методы, и они должны быть реально методами. то есть можно в поле записать функцию (если язык позволяет), но нельзя в метод записать статическое значение. Потому что иначе не будет смысла в интерфейсах.

    да я так, троллю :) очевидно что это пиздец а не код ))
    Сапожник без сапог
  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz 7 ноября 2010 г. 19:07, спустя 55 секунд

    Я так понял это ебаная модульная хуйня, для разработчиков всяких CMS?
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 7 ноября 2010 г. 19:07, спустя 20 секунд

    phpdude, смехуёчки в серьёзных темах?
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 ноября 2010 г. 19:10, спустя 2 минуты 11 секунд

    master, нашел. http://pyha.ru/forum/topic/1802.msg31309#msg31309
    Сапожник без сапог
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 7 ноября 2010 г. 19:10, спустя 43 секунды

    Mars, не только CMS, вообще скриптов

    вот тебе задание. составь классы "бензиномобиль", "электромобиль", "бензозаправка"

    сделай заправке метод
    charge(объект_автомобиля)

    сделай так, чтобы на заправку нельзя было отправить электромобиль
    не всё полезно, что в swap полезло
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 7 ноября 2010 г. 19:15, спустя 4 минуты 39 секунд

    жжоте xDDD
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 7 ноября 2010 г. 19:24, спустя 8 минут 47 секунд

    ыыыыы
  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz 7 ноября 2010 г. 19:24, спустя 36 секунд

    И так внимание, только прошу сразу не засирать:

    <?php
    class бензиномобиль {}
    class электромобиль {}

    interface заправка_бензином
    {
    public function charge(SELF::бензиномобиль);
    }

    class бензозаправка implements заправка_бензином
    {
    public function charge($object)
    {
    echo 'заправился на отличненько';
    }
    }

    $машина = new бензиномобиль;
    $электромашина = new электромобиль;

    бензозаправка::charge($машина);
    бензозаправка::charge($электромашина);


    выдаёт непонятную ошибку: Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting '&' or T_VARIABLE in /home/mars/mtd/htdocs/oop.php on line 7

Пожалуйста, авторизуйтесь, чтобы написать комментарий!