За последние 24 часа нас посетили 18742 программиста и 1603 робота. Сейчас ищут 874 программиста ...

Помогите новичку с ООП

Тема в разделе "PHP для новичков", создана пользователем Dimentor, 29 май 2008.

  1. Dimentor

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

    С нами с:
    29 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте.
    Совсем недавно начал изучать ПХП. Hello World! и гостевую книгу вроде осилил, пытаюсь потихоньку разобратся с принципами ООП.

    Проблема в следующем.
    PHP:
    1.  
    2. <?php
    3.     class a
    4.     {
    5.         var $x = '5';
    6.         function abc()
    7.         {
    8.             echo '123';
    9.         }
    10.     }
    11.    
    12.     class b
    13.     {
    14.         function abc2()
    15.         {
    16.             a::abc();
    17.         }
    18.        
    19.         function __construct()
    20.         {
    21.             $this->abc2();
    22.         }
    23.     }
    24.    
    25.     $b = new b();
    26. ?>
    27.  
    Я не понимаю, как в классе В использовать переменную $x из класса А? Классы не наследуются. С функцией просто a::abc(). А как с переменной? Я наверно не понимаю синтаксис. Что то не наткнулся на ответ в мануалах.
     
  2. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    принцип ООП - это переменная $x относится к классу A
    надо попросить его отдать.
    function get_x() {
    return $x;
    }
    function set_x($value) { $this->x=$value; }
     
  3. Dimentor

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

    С нами с:
    29 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Спасибо, будем пробовать.
     
  4. Anonymous

    Anonymous Guest

     
  5. Dimentor

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

    С нами с:
    29 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Я Вас видимо плохо понял. У меня не получается.
    Пишу
    PHP:
    1.  
    2. <?php
    3.     class a
    4.     {
    5.         var $x = '4';
    6.        
    7.         function get_x(){
    8.         return $this->x;
    9.         }
    10.     }
    11.    
    12.     class b
    13.     {
    14.         function set_x(){
    15.         $n = a::get_x();    // сейчас var_dump($n) - NULL
    16.         echo $n;
    17.         }
    18.        
    19.         function __construct(){
    20.         $this->set_x();
    21.         }
    22.     }
    23.     $b = new b();
    24. ?>
    25.  
    По идее должно просто отбразится значение $x. Если можно, поправьте этот кусочек кода мне для примера.
     
  6. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    PHP:
    1.  
    2. <?php
    3. class a
    4. {
    5.  static $x = '4';
    6.      
    7.  function get_x()
    8.  {
    9.   return self::$x;
    10.  }
    11. }
    12.  
    13. class b .....
    14. ?>
     
  7. Dimentor

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

    С нами с:
    29 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Во, теперь заработало...
     
  8. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Dimentor. Абсолютно бесполезная помощь. Почитай объекты, статики, интерфейсы и пр.. оч полезно!
    http://php.ru/manual/language.oop5.html
     
  9. Dimentor

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

    С нами с:
    29 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Обязательно прочту. Только там половина на русском, половина на аглицком. А у меня с ним с пятого на десятое.
    Народ, есть толковая книга, конкретно по ООП РНР 5? Что бы было с примерами и всеми возможностями.
    А то читаеш какой ни будь учебник РНР 5, там этому вопросу уделяется пара глав и все возможности ООП не описываются.