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

ООП в PHP5

  • Mars

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

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


    Mars, так, давай ты сперва сходишь в вики или гугл или литературу почитаешь, а потом расскажешь что такое объект и как он используется. А потом перейдём к вещам посложнее.


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

  • phpdude

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

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

    Mars, какое то сухое определение)
    Сапожник без сапог
  • Mars

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

    Spritz 7 ноября 2010 г. 7:26, спустя 58 секунд

    Да блять так в википедии сука написано
  • phpdude

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

    Spritz 7 ноября 2010 г. 7:27, спустя 58 секунд

    Игpает мальчик в песочнице. Вдpуг из окна, с 12-этажного дома напpотив,вылетает мужчина и плашмя падает в песочницу. Пыль столбом.
    Мальчик в шоке.
    Мужчина, отpяхиваясь, встаёт и говоpит:
    - Так, мальчик! Сейчас из этого же окна будут вылетать мужики - а ты ихбудешь считать… Понял?
    - По-по-понял…
    Чеpез пять минут из того же окна вылетает мужик и плашмя падает в песочницу. Пыль столбом.
    Мальчик:
    - Раз!
    Мужик встаёт и, отpяхиваясь:
    - Погоди мальчик, не считай - это снова я…
    Сапожник без сапог
  • Mars

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

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


    Игpает мальчик в песочнице. Вдpуг из окна, с 12-этажного дома напpотив,вылетает мужчина и плашмя падает в песочницу. Пыль столбом.
    Мальчик в шоке.
    Мужчина, отpяхиваясь, встаёт и говоpит:
    - Так, мальчик! Сейчас из этого же окна будут вылетать мужики - а ты ихбудешь считать… Понял?
    - По-по-понял…
    Чеpез пять минут из того же окна вылетает мужик и плашмя падает в песочницу. Пыль столбом.
    Мальчик:
    - Раз!
    Мужик встаёт и, отpяхиваясь:
    - Погоди мальчик, не считай - это снова я…



    Спустя 125 сек.
    Вот нашел пример интерфейсов, такой ебанутый что я ничего не понял

    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

    ну и в чем прикол? типа если я уберу эти интерфейсы он 1 и 2 не выведет?
  • master

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

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

    phpdude, объект - это структурированная переменная, содержащая поля и методы, т.е. статические данные и функционал, которому эти данные доступны. Поля содержатся в изолированном пространстве имён, таким образом изменение состояния одного объекта не влияет на состояние других объектов.
    не всё полезно, что в swap полезло
  • Frozzeg

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

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

    тему в Анекдоты
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • phpdude

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

    Spritz 7 ноября 2010 г. 7:40, спустя 5 минут 6 секунд

    master, вах, как круто :D
    Спустя 110 сек.
    что такое поле? чем оно отличается от метода? если будет $obj->userGetter = function($id) { return DB::users->getById($id);};

    что это будет? поле? метод? имхо эта грань давно стерлась, давно уже все функции, просто какие то являюстя функциями гететрами && сеттерами, а некоторые процедурами(которые не возвращают ничего оО, тоже стерлось это слово имхо) и функциями во всех смыслах
    Сапожник без сапог
  • save()

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

    Spritz 7 ноября 2010 г. 7:46, спустя 6 минут 44 секунды

    ну и в чем прикол? типа если я уберу эти интерфейсы он 1 и 2 не выведет?

    проверяй хуле!
  • Mars

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

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


    ну и в чем прикол? типа если я уберу эти интерфейсы он 1 и 2 не выведет?

    проверяй хуле!


    /*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

    и хуль ты мне тут заливаешь
  • master

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

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

    Программа, как известно, состоит из функций и данных. Т.е. составляя программу, мы составляем какие действия нужно совершить. Таким образом программу можно разложить на блоки действий, эти блоки и называются объектами. Объект - это набор функций, связанных данными, обрабатываемых этими функциями.
    Понятно, что данных в коде много, и часто между ними и функциями связи сложные и ветвистые. Задача программиста (а точнее проектировщика) эти связи упорядочить и разложить в "пучки", затем в нужных местах рассечь, а то что останется - сгруппировать в объекты. Объекты - это кирпичики программы, более крупные, чем функции. Запомнили? Объекты - это альтернатива функциям, причём лучшая, потому что они позволяют меньшим количеством манипуляций оперировать с тем же объёмом данных. Аналогия - это электронная схема устройства, где радиодетали - это функции, а компонентные блоки - это объекты.
    Для того чтобы один блок (объект) подошёл к другому они должны быть согласованы. Один блок (объект) должен знать каких команд и данных ждёт от него другой блок (объект) и наоборот. Когда мы пишем одну программу - это не страшно. Но преимущество блочной сборки в том, что мы можем блоки изымать и заменять другими. Для того чтобы один блок всегда мог заменить другой придуманы интерфейсы. Наглядный пример интерфейса - это SATA, он означает, что один жёсткий диск всегда встанет на место другого. Также и с объектами


    interface SATA { … }

    class HDD_SATA implements SATA { … }

    interface IDE { … }

    class HDD_IDE implements IDE { … }

    function connect_to_PC (SATA $hdd){ … }

    $hdd = new HDD_SATA;
    connect_to_PC($hdd); // ок

    $hdd = new HDD_IDE;
    connect_to_PC($hdd); // залупу
    не всё полезно, что в swap полезло
  • Troy

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

    Spritz 7 ноября 2010 г. 7:52, спустя 13 секунд

    Щас рыба прийдет, на определениях всех победит))
  • VaseninM

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

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

    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
  • phpdude

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

    Spritz 7 ноября 2010 г. 7:54, спустя 40 секунд

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

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

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


    Программа, как известно, состоит из функций и данных. Т.е. составляя программу, мы составляем какие действия нужно совершить. Таким образом программу можно разложить на блоки действий, эти блоки и называются объектами. Объект - это набор функций, связанных данными, обрабатываемых этими функциями.
    Понятно, что данных в коде много, и часто между ними и функциями связи сложные и ветвистые. Задача программиста (а точнее проектировщика) эти связи упорядочить и разложить в "пучки", затем в нужных местах рассечь, а то что останется - сгруппировать в объекты. Объекты - это кирпичики программы, более крупные, чем функции. Запомнили? Объекты - это альтернатива функциям, причём лучшая, потому что они позволяют меньшим количеством манипуляций оперировать с тем же объёмом данных. Аналогия - это электронная схема устройства, где радиодетали - это функции, а компонентные блоки - это объекты.
    Для того чтобы один блок (объект) подошёл к другому они должны быть согласованы. Один блок (объект) должен знать каких команд и данных ждёт от него другой блок (объект) и наоборот. Когда мы пишем одну программу - это не страшно. Но преимущество блочной сборки в том, что мы можем блоки изымать и заменять другими. Для того чтобы один блок всегда мог заменить другой придуманы интерфейсы. Наглядный пример интерфейса - это SATA, он означает, что один жёсткий диск всегда встанет на место другого. Также и с объектами


    interface SATA { … }

    class HDD_SATA implements SATA { … }

    interface IDE { … }

    class HDD_IDE implements IDE { … }

    function connect_to_PC (SATA $hdd){ … }

    $hdd = new HDD_SATA;
    connect_to_PC($hdd); // ок

    $hdd = new HDD_IDE;
    connect_to_PC($hdd); // залупу



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

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