За последние 24 часа нас посетили 55719 программистов и 1792 робота. Сейчас ищут 868 программистов ...

Переменная и классы

Тема в разделе "PHP для новичков", создана пользователем krow7, 14 авг 2011.

  1. krow7

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

    С нами с:
    12 авг 2009
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    из Азии
    Допустим, есть переменная и метод в базовом классе, а также несколько других классов, которые должны использовать переменную и метод базового класса. Как это реализовать? Нужно на каждый класс поставить extends или создать внутри класса экземпляр базового класса и с ним работать?
    PHP:
    1. <?php
    2. class basic_class
    3. {
    4.     public $basic_var;
    5.    
    6.     public basic_method($param)
    7.     {
    8.         // тело
    9.     }
    10. }
    11.  
    12. class class1
    13. {
    14.     private other_func()
    15.     {
    16.         basic_method($basic_var);
    17.         // базовый метод должен извлекаться внутри этой функции короче
    18.     }
    19. }
    20. ?>
    Ситуация примерно такая как в листинге.
     
  2. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    во втором классе нужно наследовать первый. поскольку, в первом метод basic_method объявлен как паблик, то в классе-наследнике его можно вызывать просто $this->basic_method().
    Если же не наследовать во втором классе первый, то нужно передавать во второй объект типа basic_class, чтобы через него вызывать метод basic_method(). Но тогда уже не через $this, а через объект $obj->basic_method().
    Еще вариант сделать метод статичным в классе basic_class, тогда к нему сможешь обратиться без создания обхекта basic_class::basic_method(). вроде все так.
     
  3. krow7

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

    С нами с:
    12 авг 2009
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    из Азии
    то есть надо будет сделать:
    PHP:
    1. <?
    2. $obj=new basic_class;
    3. $obj->basic_method();
    так?
     
  4. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    так
     
  5. krow7

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

    С нами с:
    12 авг 2009
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    из Азии
    Апельсин, спасибки)
     
  6. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Все зависит от цели.
    Одно дело если это Мерседес, который по сути Автомобиль, другое дело если это Мерседес с мотором внутри.