За последние 24 часа нас посетили 45189 программистов и 3276 роботов. Сейчас ищут 1566 программистов ...

Семь хороших объектно-ориентированных привычек

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

  1. NR55RU

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

    С нами с:
    16 фев 2011
    Сообщения:
    88
    Симпатии:
    0
  2. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Это все, конечно, очень хорошо.
    Но не считаю правильным использовать 123 функции для назначения свойств класса, как это показано в примере...
     
  3. Volt(220)

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

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    admyx
    PHP:
    1.     <?php
    2.         public function __get($var){
    3.             $method="get".ucfirst($var);
    4.             if (method_exists($this, $method)){
    5.                 return $this->$method();
    6.             }
    7.             return $this->$var;
    8.         }
    9.        
    10.         public function __set($var, $val){
    11.             $method="set".ucfirst($var);
    12.             if (method_exists($this, $method)){
    13.                 $this->$method($val);
    14.             }else{
    15.                 $this->$var=$val;
    16.             }
    17.         }
    не?
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Volt(220)
    Разве ООП есть только в РНР?

    ЗЫ: в С# это делается с помощью специальной конструкции для объявления геттеров и сеттеров для каждого из свойства, ага.
     
  5. Volt(220)

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

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Apple
    Здесь форум о PHP. В статье рассматривается PHP. По-этому я и говорю о php.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ох ты ж как круто-то! а я и не знал! пойду перепишу пару классов. блин, удобно, чо
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    пипец я в шоке. я все проспал

    Спасибо! =)
     
  8. titch

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

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    блин, igordata.... может сразу остальную магию глянешь? ;) мало ли че)
     
  9. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Volt(220)
    Блядь, ты статью читал?

    PHP:
    1. <?php
    2.     public function getPrefix()
    3.     {
    4.         return $this->prefix;
    5.     }
    6.    
    7.     public function setGivenName($gn)
    8.     {
    9.         $this->givenName = $gn;
    10.     }
    11.    
    12.     public function getGivenName()
    13.     {
    14.         return $this->givenName;
    15.     }
    16.    
    17.     public function setFamilyName($fn)
    18.     {
    19.         $this->familyName = $fn;
    20.     }
    21.    
    22.     public function getFamilyName()
    23.     {
    24.         return $this->familyName;
    25.     }
    26.    
    27.     public function setSuffix($suffix)
    28.     {
    29.         $this->suffix = $suffix;
    30.     }
    31.    
    32.     public function getSuffix()
    33.     {
    34.         return $suffix;
    35.     }
     
  10. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    А что вам не нравится? Много строчек? Тогда идите на брейнфаке программить.
    А в любой приличной IDE создание гетеров и сетеров делается одним кликом.
    Ну, магия тоже выручает, да, хотя с ней и осторожнее нада быть.