ऐसा लगता है कि अब तक कोई भी उल्लेख नहीं किया गया है, उसी वर्ग के विभिन्न उदाहरणों के भीतर स्थिर चर उनके राज्य बने रहते हैं। इसलिए ओओपी कोड लिखते समय सावधान रहें।
class Foo
{
public function call()
{
static $test = 0;
$test++;
echo $test . PHP_EOL;
}
}
$a = new Foo();
$a->call(); // 1
$a->call(); // 2
$a->call(); // 3
$b = new Foo();
$b->call(); // 4
$b->call(); // 5
आप एक स्थिर चर केवल वर्तमान वर्ग उदाहरण के लिए अपने राज्य को याद रखना चाहते हैं, तो आप बेहतर एक वर्ग संपत्ति पर कायम हैं, इस तरह::
class Bar
{
private $test = 0;
public function call()
{
$this->test++;
echo $this->test . PHP_EOL;
}
}
$a = new Bar();
$a->call(); // 1
$a->call(); // 2
$a->call(); // 3
$b = new Bar();
$b->call(); // 1
$b->call(); // 2
http://php.net/manual/en/language.variables.scope.php – Mahesh