За последние 24 часа нас посетили 53869 программистов и 1712 роботов. Сейчас ищут 804 программиста ...

Interfaces

Тема в разделе "PHP для новичков", создана пользователем T-Mon, 21 апр 2009.

  1. T-Mon

    T-Mon Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    Kyiv
    Немного поработав с Java, я узнал, что там реализация интерфейсов не только следования неким правилам, но и еще введение дополнительной функциональности классу. Например, реализуя интерфейс Serializable мы позволяем классу быть сериализованным, реализуя интерфейс Comparable класс может быть отсортирован в коллекции и т.д.
    Есть что-то подобное в PHP, в частности, есть ли интерфейсы, методы которых позволили б объекту данного класса автоматически распаковываться в примитивный тип при проведении над ним операций.
     
  2. T-Mon

    T-Mon Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    Kyiv
    Ярким примером автоматической распаковки является метод __toString, ели кто-то не понял, что я имел в виду.
     
  3. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
  4. T-Mon

    T-Mon Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    Kyiv
    Не совсем, интересует, могут ли интерфейсы расширять базовый функционал магических методов для тех или иных целей.
    Например (абстрактный пример):

    PHP:
    1. <?php
    2. class Int implements Packable
    3. {
    4. private $_Value;
    5.  
    6. public function __construct ($value)
    7. {
    8. $this->_Value = $value;
    9. }
    10. //Магический метод автоматической распаковки, предусмотренный интерфейсом Unpackable
    11. public function unpack ()
    12. {
    13. return($this->_Value);
    14. }
    15. }
    16. //Создание экземпляра
    17. $int = new Int(12);
    18. //Вызов распаковки
    19. $temp = $int + 1;
    Фактически приведение объекта к примитивному типу, этакая примитивная симуляция доопределения операторов.
    Есть ли что-либо подобное?
     
  5. Cron

    Cron Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы