Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Вызов функции из класса


Автор: neokortex 7.5.2013, 18:51
Есть класс получающие и обрабатывающий некие данные. В одной из функции надо сделать так чтобы вызывалась функция которой нет в классе.

Приблизительный пример.

Код

class myClass{
    public $options;
    public $data;
    public function myFunction(){
        $newData = $data; // обрабатываем каким-то образом $data
        if ($this->options['callAnotherFunction']) {
            // как вызвать функцию - anotherFunctionName, чтобы ей был доступен $newData
        }
   }
}


$myClass = new myClass();
$myclass->data = 'myData';
$myClass->options = array(
    option1=>'oprtion1',
    option2=>'oprtion2',
    option3=>'oprtion3',
    callAnotherFunction=>'anotherFunctionName'
);

function anotherFunctionName(){
    // здесь работаем с $newData
}


Автор: Чучмек 7.5.2013, 20:30
Передавай $newData в anotherFunctionName параметром. Или объяви глобальную переменную в  anotherFunctionName  в чем проблема?

Автор: Zorak 13.5.2013, 22:45
Вот передать $NewData параметром будет в самый раз, если функция описана в другом классе, то подключи клас в классе и всЕ)

Автор: Gold Dragon 22.5.2013, 20:50
кто-то понял вопрос? я нет smile можно ещё раз объяснить... И кстати, в классе не функции, а методы

Автор: Zorak 23.5.2013, 21:34
Цитата(Gold Dragon @ 22.5.2013,  20:50)
И кстати, в классе не функции, а методы

таки да -=)

Автор: cia 30.5.2013, 23:27
Код

    public function myFunction(){
        $newData = $data; // обрабатываем каким-то образом $data
        if ($this->options['callAnotherFunction']) {
            // как вызвать функцию - anotherFunctionName, чтобы ей был доступен $newData
            $s=$this->options['callAnotherFunction'];
            $s($newData);
        }
   }


function anotherFunctionName(&$newData){
    // здесь работаем с $newData
}


Автор: krundetz 31.5.2013, 16:28
neokortex, посмотрите в сторону магического метода __call()

Автор: neokortex 27.6.2013, 11:48
cia, спасибо, помогло!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)