ФорумПрограммированиеPHP для идиотов → определение класса потомка в родителе

определение класса потомка в родителе

  • Faster

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

    Spritz 27 июня 2010 г. 12:45, спустя 13 минут 40 секунд

    master,
    у меня не заработало то что пытался сделать, что приводить то
    есть общие методы - для родителя
    есть кастомные - для потомков
  • VaseninM

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

    Spritz 27 июня 2010 г. 12:53, спустя 7 минут 28 секунд

    Faster, блять, Фастер, это простое наследование.
    class Read {
    protected $page = 1;
    public function nextPage () {
    $this->page ++;
    }
    }
    Class ReadBook {
    public function __construct () {
    //открываем книгу
    }
    }

    Class ReadFastersPyhaTopic {
    public function __construct () {
    //открываем этот топик
    }
    }

    $book = new ReadBook;
    $book->nextPage();
    $pyha = new ReadFastersPyhaTopic;
    $pyha->nextPage();
    $pyha->nextPage();
  • master

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

    Spritz 27 июня 2010 г. 12:53, спустя 31 секунду

    ну так и делай инстансы потомков, в них будут доступны public и protected методы родителей.

    у меня не заработало то что пытался сделать, что приводить то

    программирование строится так:
    в начале пишешь использование

    $xx = new abc;
    $xx->foo();

    потом реализуешь классы

    class abc {

    }

    в зависимости от основного хода программы реализуешь классы так или иначе. реализация в общем случае дело десятое
    не всё полезно, что в swap полезло
  • phpdude

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

    Spritz 27 июня 2010 г. 12:59, спустя 5 минут 52 секунды

    есть общие методы - для родителя
    есть кастомные - для потомков

    ДА!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    ну так и делай


    abstract class Remote {
       protected $url

       public function __construct($url)
    {
    $this->url = $url;
    }
       protected function esc($html)
       {
            return htmlspecialchars($html);
       }

       public function __toString()
       {
          throw new exception('please override this __toString function in child objects');
       }
    }

    class RemoteJS extends Remote {

      public function __toString()
      {
          return "<script src=\"".$this->esc($this->url)."\" type=\"textjavascript\"></script>";
      }
    }

    class RemoteCSS extends Remote {

      public function __toString()
      {
          return "<link href=\"".$this->esc($this->url)."\" rel=\"stylesheet\" type=\"text/css\"/>";
      }
    }

    $js = new RemoteJS("http://jquery.com/jq.js");
    $css = new RemoteCSS("http://lol.to/lol.css");



    <?= $js?>
    <?=$css?>
    Спустя 72 сек.
    неудобно в форме ответа код писать :(

    форматировщика нет :(
    Сапожник без сапог

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