За последние 24 часа нас посетили 18832 программиста и 1729 роботов. Сейчас ищут 1135 программистов ...

Вызвать статичеcкий метод класс, имя которого сформированно

Тема в разделе "Прочие вопросы по PHP", создана пользователем bobroff, 17 мар 2010.

  1. bobroff

    bobroff Активный пользователь

    С нами с:
    20 мар 2009
    Сообщения:
    44
    Симпатии:
    0
    Здравствуйте.

    Как сделать следующий код рабочим:
    PHP:
    1.  
    2. function getValue($name)
    3. {
    4.  
    5. $classname = self::MODEL_NAMESPACE.self::MODEL_NAMESPACE_SEPARATOR.$name;  // Например получится Model_User
    6.        
    7. $classname::getObjectType();  //Если написать  Model_User::getObjectType() - то код работает.
    8.  
    9. }
    10.  

    Заранее, спасибо...

    P.S.: без создания экземпляра объекта...
     
  2. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    MODEL_NAMESPACE - должна вроде быть константой как и другая.
    $classname::getObjectType() работает вроде только начиная с 5.3
     
  3. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    call_user_func
     
  4. bobroff

    bobroff Активный пользователь

    С нами с:
    20 мар 2009
    Сообщения:
    44
    Симпатии:
    0
    Пробовал, что-то NULL возращало.
    писал так
    call_user_func(array($classname,'getValue'));
     
  5. bobroff

    bobroff Активный пользователь

    С нами с:
    20 мар 2009
    Сообщения:
    44
    Симпатии:
    0
    она константа.
    Версию посмотрю.
     
  6. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    call_user_func(array($classname,'getObjectType'));
     
  7. bobroff

    bobroff Активный пользователь

    С нами с:
    20 мар 2009
    Сообщения:
    44
    Симпатии:
    0
    Ступил, моя ошибка....
    call_user_func работает.
    Спасибо.
     
  8. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Mr.M.I.T.
    да, точно, я чёто завтычил...
     
  9. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    Код (Text):
    1. >php -r "class AAA { public static function bbb() { return 'aaa';} } $class = 'AAA'; $func = 'bbb'; $s = $class::$func(); echo $s;"
    2. aaa
     
  10. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    iliavlad
    Ему уже говорили обновиться до 5.3