| |
|
|
| | Добрый день. Интересует следующий вопрос по статическим классам в 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)
| | | Супер! Зачёт! Спасибо!! | |
| |
|
|