|
|
|
| Добрый день. Интересует следующий вопрос по статическим классам в PHP. У меня имеется класс вида:
class MyClass {
static function MainFunc() {...}
static function Test() {...}
static function Test2() {...}
}
|
Как сделать, что бы функция MainFunc() вызывалась каждый раз при вызове любой другой функции этого класса.
PS: вариант тупо вызывать её в каждой функции не пройдёт. | |
|
|
|
|
|
|
|
для: pavluxa09
(31.01.2011 в 22:01)
| | расскажи что делать собрался может подскажу а так гадать не пойдет | |
|
|
|
|
|
|
|
для: Красная_шляпа
(31.01.2011 в 22:12)
| | Хочу сделать статический класс для работы с MYSQLi, в нём будет создаваться один объект класса mysqli и при помощи нашего класса мы будем с ним работать | |
|
|
|
|
|
|
|
для: pavluxa09
(31.01.2011 в 22:32)
| | экономте ваш энтузиазм на што то более подходящее... три буквы PDO - юзай. | |
|
|
|
|
|
|
|
для: pavluxa09
(31.01.2011 в 22:32)
| | а тут противоречий нет? класс в нём создается объект... Почему нельзя просто создать объект? | |
|
|
|
|
|
|
|
для: Красная_шляпа
(31.01.2011 в 23:23)
| | Возможно он хочет lazy initialization. | |
|
|
|
|
|
|
|
для: pavluxa09
(31.01.2011 в 22:01)
| | Можно задействовать магию:
<?
class StaticClass {
protected static function main() {
print "main() called<br>";
}
protected static function test1() {
print "test1() called<br>";
}
protected static function test2() {
print "test2() called<br>";
}
public static function __callStatic($name, $arguments) {
if ( method_exists(__CLASS__, $name) ) {
self::main();
self::$name($arguments);
} else {
throw new Exception('Method '.$name.' not exists');
}
}
}
StaticClass::test1();
StaticClass::test2();
|
| |
|
|
|
|
|
|
|
для: Саня
(01.02.2011 в 13:13)
| | Супер! Зачёт! Спасибо!! | |
|
|
|