2013-04-01 5 views
0

Я хотел бы лучше понять, как вызовы функций работают в ООП. У меня есть следующий образец:Вызов функции из класса в другой функции

class SomeClass { 
    function __construct(){ 
     //run function do() 
     //run function include() 
     //run function run() 
    } 

    public function do($foo){ 
     //do some stuff 
    } 

    public function include(){ 
     require_once(CONSTANT . 'required.php'); 
    } 

    public function run(){ 
     required_func(); 
    } 
} 

$load_class = new SomeClass(); 

в required.php:

function required_func(){ 

    $customerInfo = "info"; 
    $customer = $this -> do($customerInfo); //--> This isn't right 
    return $customer; 
} 

То, что я пытаюсь сделать, это иметь required_func() запустить делать() с $ customerInfo. Итак, по существу: как вызвать публичную функцию класса из другой функции, включенной в файл require_once? Я даже дистанционно здесь?

Спасибо за вашу помощь

+0

Pass $ это в вызове required_func(), а затем принять $ customerObject как аргумент в required_func() и call do() против $ customerObject –

ответ

1

$ это не в области видимости функции required_func()

class SomeClass { 
    function __construct(){ 
     //run function do() 
     //run function include() 
     //run function run() 
    } 

    public function do($foo){ 
     //do some stuff 
    } 

    public function include(){ 
     require_once(CONSTANT . 'required.php'); 
    } 

    public function run(){ 
     required_func($this); 
    } 
} 

$load_class = new SomeClass(); 

и

function required_func($customerObject){ 

    $customerInfo = "info"; 
    $customer = $customerObject->do($customerInfo); 
    return $customer; 
} 
+0

Спасибо, он работает. Итак, по существу $ customerObject переходит к классу $ this? –

+0

Nevermind :) только что прокомментировал вопрос ... Спасибо –

Смежные вопросы