berkut
Новичок
static переменная в методе и классе
Почему вот так ведёт себя пример:
Во-первых, мне _кажется_, что логичнее, что-бы было наоборот - protected static $obj - была общей для всех экземпляров класса, а static $method - была-бы своя для каждого экземпляра. Ну или в край, обе были-бы либо общими, либо своими для каждого экземпляра.
Кто знает логичное объяснение вот такому поведению?
Почему вот так ведёт себя пример:
PHP:
class c
{
protected static $obj;
public function test()
{
static $method;
++$method;
++$this->obj;
return array('method'=>$method, 'obj'=>$this->obj);
}
}
$t1 = new c;
var_dump($t1->test()); // ["method"]=> int(1), ["obj"]=> int(1)
$t2 = new c;
var_dump($t2->test()); // ["method"]=> int(2), ["obj"]=> int(1)
Кто знает логичное объяснение вот такому поведению?