статический вызов метода

Novice

Новичок
статический вызов метода

Вобщем есть класс для обработки ошибок error (синглтон).
Есть классы, использующие его.

В их конструкторах пишу типа:
$this->error = error::get_instance();

ну а потом во всех методах:
$this->error->set_error("Some error");

Дело в том, что есть методы, вызываемые статически, в которых такое не прокатит...

Можно использовать везде
error::get_instance()->set_error("Some error");
но как-то глаза режет....

Можно придумать что-то покрасивее при условии что объект error должен создаваться?

Если я хочу нереального и за%бую народ, то так и скажите :)



PS: вот что нарыл в поисках документации, если кого интересует, все на анг:

Programming PHP (PDF, O'Reilly, ~ 480 pages)
by Rasmus Lerdorf and Kevin Tatroe with Bob Kaehms and Ric McGredy

Advanced PHP for Web Professionals (CHM, Prentice Hall PTR, 368 pages)
by Christopher Cosentino

The PHP Anthology VolumeI (PDF, SitePoint Pty. Ltd., 360 pages)
The PHP Anthology VolumeII (PDF, SitePoint Pty. Ltd., 380 pages)
by Harry Fuecks

Web Database Applications with PHP & MySQL (PDF, O'Reilly, ~830 pages)
by Hugh E. Williams and David Lane

Secure PHP Development - Building 50 Practical Applications (PDF, Wiley Publishing, Inc., ~900 pages)
by Mohammed J. Kabir

MySQL/PHP Database Applications (PDF, M&T Books, ~620 pages)
by Jay Greenspan and Brad Bulger

PHP 5 Advanced OOP and Design Patterns (PDF, ~30 pages)
by Alan Kay

CMS (CHM, Glasshaus, 200 pages)
by Phil Suh, Dave Addey, David Thiemecke and James Ellis

Building a Content Management System (на ASP.NET)
by STEPHEN R. G. FRASER (405 pages)
 

svetasmirnova

маленький монстрик
PHP:
static $error;
self::$error = error::get_instance();
?

Статический массив ошибок ещё можно создать, если вариации нужны.
 

Novice

Новичок
Да, это как вариант, только для удобства придеться инициализировать self::$error в конструкторе, то есть уже необходимо создание экземпляра класса...
А если не создавать, то в каждом методе надо будет писать вначале self::$error = error::get_instance();
 

vitorio

Новичок
У меня тоже есть по статическим вызовам.
Дело такое у меня есть динамическое определение имени класса:
$class_name = 'SomeClass';
А далее мне нужно вызвать статический метод этого класса, я вызываю его так
$result = $class_name::someMethod();
Это не работает. Зато вот так работает отлично:
$result = eval('return ' . $class_name . '::someMethod();');
Но это же зло, как можно культурно вызвать статический метод для класса, имя которого определено в переменной? Подскажите кто с таким сталкивался?

У меня php 4.4.2. Ответы типа поставь php 5 и не мучайся не засчитываются. :)
Заранее всем благодарен !!!
 
Сверху