[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: динамический вызов функции
REANIMATOR
Доброе время суток.

Подскажите, как можно реализовать call_user_func() относительно объекта?
Имеем класс
PHP
class myClass
{
    function index()
    {
        //do something
    }
}

$handle = new myClass();
$handle->call_user_func() // тут гвоздь...


я думал передать имя функции в отдельную функцию analizer и чтобы она вызывала. например так

PHP
class myClass
{
    function analizer($func_name)
    {
         if(function_exist($func_name))
         {
             call_user_func($func_name);
         }

    }


    function index()
    {
        //do something
    }
}

$handle = new myClass();
$handle->analizer("index");


но увы там тоже нужно както обратится через $this...

Подскажите, может кто сталкивался.



Спустя 8 минут, 1 секунда (27.02.2009 - 21:18) kirik написал(а):
Если я правильно понял вопрос..
Вся "внешняя" работа с классами производится через массив:
PHP
$class 'myClass';
$func 'index';
call_user_func(array($class$func));

Спустя 15 минут, 57 секунд (27.02.2009 - 21:34) REANIMATOR написал(а):
kirik

smile.gif да, спасибо...
а если внутри класса, как можно обратится?

как тут if(function_exist($func_name))

с массивом не работает

Спустя 41 минута, 30 секунд (27.02.2009 - 22:15) kirik написал(а):
Цитата (REANIMATOR @ 27.02.2009 - 13:34)
а если внутри класса, как можно обратится?

Тогда тебе нужно юзать не function_exists(), а method_exists() smile.gif

Спустя 27 минут, 4 секунды (27.02.2009 - 22:42) REANIMATOR написал(а):
kirik
хех. как всё просто получается... спасибо помог =)

Спустя 1 час, 55 минут, 10 секунд (28.02.2009 - 00:38) REANIMATOR написал(а):
ещё вопросик... biggrin.gif

вот есть такая замечательная функция call_user_func()

зачем её использовать, если можно просто использовать такой вариант?

PHP
$test "hi";
  function 
hi()
  {
      echo 
"hello";  
  }
  
  
$test();


есть ли разница, кроме того что call_user_func() возвращает индикацию?

Спустя 39 минут, 7 секунд (28.02.2009 - 01:17) kirik написал(а):
Цитата (REANIMATOR @ 27.02.2009 - 16:38)
есть ли разница

Впринципе разницы никакой.
ИМХО call_user_func() делает код немного более читабельным smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.