2015-10-23 8 views
1

Когда я вызываю функцию search_array, я получаю эту ошибку:неопределенная функция CodeIgniter

Call to undefined function search_array() 

Даже если я все функции общественности, она не работает. Как это возможно?

function search_array($needle, $haystack) { 
    if(in_array($needle, $haystack)) { 
      return true; 
    } 
    foreach($haystack as $element) { 
      if(is_array($element) && search_array($needle, $element)) 
       return true; 
    } 
    return false; 
} 

public function do(){ 
    $excist = $this->search_array($test[2], $allValuta); 
} 
+0

Потому что вы пытаетесь вызвать функцию вместо метода. 'search_array ($ needle, $ element)' должен быть '$ this-> search_array ($ needle, $ element)'. –

ответ

1

Измените коды быть таким:

function search_array($needle, $haystack) { 
    if(in_array($needle, $haystack)) { 
      return true; 
    } 
    foreach($haystack as $element) { 
      if(is_array($element) && $this->search_array($needle, $element)) 
       return true; 
    } 
    return false; 
} 

public function do(){ 
    $excist = $this->search_array($test[2], $allValuta); 
} 

Скажите мне, если это работает.

0

В кодеигниторе для вызова функции вы должны использовать $this->. Так что добавьте $this-> к search_array()

Как это,

if(is_array($element) && search_array($needle, $element)) 

в

f(is_array($element) && $this->search_array($needle, $element)) 
         ^ ^
0

Вы в классе? Если нет, вы определяете функцию search_array(). Значит, вы не должны называть его ** $ this -> ** search_array (...), эта схема используется для метода класса.

Короче говоря: удалить $ this->