Вызов одной функции из другой с использованием codeigniter - PullRequest
1 голос
/ 22 июня 2011

Я использую CodeIgniter и столкнулся с интересной проблемой. Мне нужно использовать переменные из одной функции в другой. Я планировал сделать это, просто объявив глобальные переменные (что я не смог) сделать в рамках. Поэтому я попытался вызвать одну функцию изнутри другой (все это происходит в контроллере). Поскольку, по-видимому, это невозможно, я создал вспомогательный файл с общей функцией, а затем просто попытался загрузить его, но получаю эту ошибку:

Fatal error: Call to undefined method ReporteNominas::getValues()

вспомогательный файл находится внутри папки помощников и содержит:

function getValues($getThem, $tpar, $vpiso, $tcomi, $tgas, $ttotal){
            $totalPares = $tpar;
            $ventasPiso = $vpiso;
            $totalComisiones = $tcomi;
            $totalGastos = $tgas;
            $totalTotal = $ttotal;
            if($getThem){
                return $totalPares . "," . $ventasPiso . "," . $totalComisiones . "," . $totalGastos . "," . $totalTotal;
            }
        }

и я пытаюсь это сделать так:

$this->load->helper('helper_common_functions_helper');
                $this->getValues(false, $query['cant'], $query['sum'], $query['com'], $query['gas'], $query['tot']);

что мне здесь не хватает?

Ответы [ 2 ]

3 голосов
/ 22 июня 2011

Попробуйте:

$this->load->helper('helper_common_functions_helper');

getValues(false, $query['cant'], $query['sum'], $query['com'], $query['gas'], $query['tot']);

Помощник (если все сделано правильно) - это просто группа функций, а НЕ класс, поэтому вы можете вызывать его как обычный вызов функции.

Вы также должны сделать это в вашем помощнике:

if ( ! function_exists('get_values'))
{
   function getValues($getThem, $tpar, $vpiso, $tcomi, $tgas, $ttotal)
   {
     //rest of code
   }
}

Чтобы избежать ошибки 'redeclare function' при загрузке более одного раза

0 голосов
/ 09 октября 2012

Помощники - это просто функции, поэтому вместо вызова их как класса с $ this-> вы просто вызываете их как обычную функцию php.Так что поменяйте

$this->getValues(false, $query['cant'], $query['sum'], $query['com'], $query['gas'],$query['tot']);

на

 getValues(false, $query['cant'], $query['sum'], $query['com'], $query['gas'],$query['tot']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...