Я заметил, что ключевое слово static
в PHP совсем не то, что static
.
Допустим, Elmo
- мой синглтон:
class Elmo
{
private static $instance;
private function __construct()
{
echo 'Elmo says constructor\n';
}
public static function getInstance()
{
if (!isset(self::$instance))
self::$instance = new Elmo();
return self::$instance;
}
public function boo()
{
echo 'Elmo says boo!\n';
}
}
Следующий файл представляет собой обычный скрипт .php
.
<?php
Elmo::getInstance()->boo();
Elmo::getInstance()->boo();
// Output:
// Elmo says constructor
// Elmo says boo!
// Elmo says boo!
?>
Каждая новая страница Elmo
перестраивается.Почему на следующих страницах не выдается следующий вывод?
<?php
// Output:
// Elmo says boo!
// Elmo says boo!
?>
Надеюсь, кто-нибудь сможет мне это объяснить, спасибо!