Вы не зашли.
TLENS   Off  (14)
Moderator
2014.01.15 00:12
Gemorroj написал:
http://php.net/manual/ru/language.oop5. … ndings.php
Что то там ничего не понял. Но тесты показывают следующее
Я так понял:
parent - обращаемся к методу/свойству через класс родителя
self - обращается  методу через класс в котором был определен данный метод
static - обращаемся к методу через текущий класс
Добавлено спустя   5 минут  8 секунд:
Учитывая что я использую наследования получается что все же static будет целесообразнее использовать в данном случаее. В противном случае не важно будет self или static
Код:
lt;?abstract class TestVideo { static public $objectList; static public function &ID($id) { if (!isset(static::$objectList[$id])) static::$objectList[$id] = new static($id); return static::$objectList[$id]; } public $key; public $id; abstract protected function __construct($id);}class TestVideo1 extends TestVideo { static public $objectList = array(); protected function __construct($id) { $this->key = 'TestVideo1'; $this->id = $id; }}class TestVideo2 extends TestVideo { static public $objectList = array(); protected function __construct($id) { $this->key = 'TestVideo2'; $this->id = $id; }}$a = TestVideo1::ID('123');$b = TestVideo2::ID('1234');$c = TestVideo2::ID('123');//var_dump(array($a, $b, $c));var_dump(TestVideo::$objectList);var_dump(TestVideo1::$objectList);var_dump(TestVideo2::$objectList);
На выходе
NULL
array(1) {
  [123]=>
  object(TestVideo1)#1 (2) {
    ["key"]=>
    string(10) "TestVideo1"
    ["id"]=>
    string(3) "123"
  }
}
array(2) {
  [1234]=>
  object(TestVideo2)#2 (2) {
    ["key"]=>
    string(10) "TestVideo2"
    ["id"]=>
    string(4) "1234"
  }
  [123]=>
  object(TestVideo2)#3 (2) {
    ["key"]=>
    string(10) "TestVideo2"
    ["id"]=>
    string(3) "123"
  }
}

Или мои убеждения неверны?
А по поводу ссылочного метода. Я так полагал что бы объект не клонировался
Главная
WEB
PunBB Mod v0.6.2
0.012 s