За последние 24 часа нас посетил 17841 программист и 1647 роботов. Сейчас ищут 938 программистов ...

Позднее статическое связывание

Тема в разделе "PHP для новичков", создана пользователем xfreewindx, 28 мар 2012.

  1. xfreewindx

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

    С нами с:
    22 фев 2012
    Сообщения:
    55
    Симпатии:
    0
    Привет всем!
    Подскажите по сабжу, стал разбираться и насколько я понял конструкция new static(); создает объект для конкретного класса, а не содержащего. Но не совсем въехал как это можно потестить на примерах и для чего это может пригодиться. Логику не совсем улавливаю. Можете пояснить.

    Код (Text):
    1.  
    2. class A {
    3.  
    4.     // some stuff....
    5.  
    6.     public static function getInstance() {
    7.         return new static();
    8.     }
    9.  
    10. }
    11.  
    12. class B extends A {
    13.     public static function test() {
    14.         print "Test\n";
    15.     }
    16. }
    17.  
    18. $obj = B::getInstance();
    19. $obj::test();
    20. var_dump($obj);
     
  2. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Это удобно, когда создается абстрактный класс для реализации Синглтона, и все классы, которые должны быть синглтонами - наследуются от него.
     
  3. xfreewindx

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

    С нами с:
    22 фев 2012
    Сообщения:
    55
    Симпатии:
    0
    Спасибо