if(method_exists($name, "onload"))
$name::onload();
В строке $name::load_events(); - ошибка, как же мне подставить название класса в такой ситуации?
Спустя 33 минуты, 38 секунд (16.08.2011 - 18:34) alex12060 написал(а):
class foo {
static function load() {
echo 'fooo';
}
}
foo::load();
Понятней так?
Спустя 8 минут, 29 секунд (16.08.2011 - 18:43) Guest написал(а):
alex12060
или я не понимаю, или вы меня не поняли. Название класса в переменной, мы не можем его знать заранее.
или я не понимаю, или вы меня не поняли. Название класса в переменной, мы не можем его знать заранее.
Спустя 25 минут, 12 секунд (16.08.2011 - 19:08) Nikitian написал(а):
$obj = new $name;
$obj::onload();
Ваш вариант будет работать только в php 5.3 и выше
Спустя 12 часов, 53 минуты, 57 секунд (17.08.2011 - 08:02) linker написал(а):
Guest
Извини, но сейчас ты фигню написал. Через объекты нужно вызывать только обычные методы, статические методы вызываются через класс, ибо они принадлежат классу, а не объектам
call_user_func(array($name, 'onload'));Nikitian
Извини, но сейчас ты фигню написал. Через объекты нужно вызывать только обычные методы, статические методы вызываются через класс, ибо они принадлежат классу, а не объектам
class ClassName
{
public static function onload() {}
}
ClassName::onload();
Спустя 41 минута, 51 секунда (17.08.2011 - 08:44) Nikitian написал(а):
linker
Утро, оно такое... Просыпайся быстрее ;)
Под его вопрос подходит пример из мануала
Утро, оно такое... Просыпайся быстрее ;)
Под его вопрос подходит пример из мануала
$foo = new Foo();
print $foo::$my_static . "\n";
$classname = 'Foo';
print $classname::$my_static . "\n"; // As of PHP 5.3.0
Спустя 37 минут, 30 секунд (17.08.2011 - 09:21) linker написал(а):
Nikitian
Да утро такое. Твой пример относится к статическим полям класса, под методы пример в мануале чуть ниже.
Да утро такое. Твой пример относится к статическим полям класса, под методы пример в мануале чуть ниже.
<?phpУ него не PHP 5.3.x иначе бы ошибок не было, под его вопрос, как раз подходит мой вариант.
class Foo {
public static function aStaticMethod() {
// ...
}
}
Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod(); // As of PHP 5.3.0
?>