Чтобы уточнить:Singleton шаблон + __construct в PHP4
- нет, я не могу сделать это чисто PHP5
- да этот код работает в PHP 4.3.9.
У меня нет опыта реального мира, реализующего или поддерживающего PHP4, но мне пришлось недавно изменить свой класс, чтобы он поддерживал как PHP4, так и PHP5.
- Может ли кто-нибудь предвидеть любые возможные проблемы в отношении моей реализации метода singleton, используемого здесь? Мне нужен только один экземпляр этого класса.
- Я знаю, что могу полностью избавиться от метода
__construct
, должен ли я? (и переместить тело функции из него в функцию Conf). - Могу ли я использовать
self
в любом месте? Я не был уверен в поддержке PHP4.
<?php
class Conf {
function Conf($filename) {
$this->__construct($filename);
}
function __construct($filename) {
echo $filename;
}
function getInstance($filename) {
static $instance = null;
if ($instance == null) {
$instance = new Conf($filename);
}
return $instance;
}
}
$x = Conf::getInstance('file.xml');
Интересно. Это значит, что '__CLASS__' в основном является заменой' self', поскольку PHP4 не может поддерживать 'self'? –
Yup, '__CLASS__' - волшебная константа (http://us2.php.net/manual/en/language.constants.predefined.php). –