За последние 24 часа нас посетили 49234 программиста и 1809 роботов. Сейчас ищут 878 программистов ...

Статические члены и методы класса

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

  1. rar

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

    С нами с:
    9 дек 2008
    Сообщения:
    206
    Симпатии:
    0
    Адрес:
    Москва
    Расскажите, зачем, вообще, нужны статические классы и методы, окромя, того, что несколько созданных объектов могут пользоваться одной общей переменной.
    Когда следует использовать статические члены и методы, а когда нет?
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Статические члены и методы можно использовать без создания экземпляра класса. Сравни
    PHP:
    1. <?php
    2. class a
    3. {
    4.      function preved()
    5.      {
    6.           echo "PREVED!";
    7.      }
    8. }
    9.  
    10. class b
    11. {
    12.      static function preved()
    13.      {
    14.           echo "PREVED!";
    15.      }
    16. }
    17.  
    18. $a = new a;
    19. $a -> preved();
    20.  
    21. b::preved();
    22. ?>
     
  3. rar

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

    С нами с:
    9 дек 2008
    Сообщения:
    206
    Симпатии:
    0
    Адрес:
    Москва
    А какие конкретные преимущества?
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?php
    2.  
    3. class Apple
    4. {
    5.     public static $Age  = 18;
    6.     public static $Name = "Arthur";
    7.    
    8.     const Sex = "Male";
    9. }
    10.  
    11. // Изменим имя, которое дала мать
    12. Apple::$Name = "Dima";
    13.  
    14. // Какого я пола?
    15. echo Apple::Sex;
    16.  
    17. // Попробуем его сменить
    18. Apple::Sex = "Female";  //!! Нельзя
    19.  
    20.  
    21. ?>
     
  5. sylex

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

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    Apple
    ты че фотку убрал свою? :)
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Часто интерфес для работы с БД делают статическим классом. Ненадо создавать экземпляры, не тратится лишняя память.
    Кстати, статика работает быстрее.