2012-05-18 11 views
8

Używam codeigniter. I określono bibliotekę w CodeIgniter i spodziewa się parametr w swoich constructor.This jest mój kod biblioteka -Załaduj bibliotekę, przekazując parametr do konstruktora w codeigniter

################# [My Library Code Test_lib.php ] ######################## 
<?php 
class Test_lib 
{ 
var $params; 
public function __construct($params) 
{ 
    $this->params = $params; 
    echo $this->params; 
} 
} 

w dokumentacji CodeIgniter, wspomniano, że można przekazać parametr w drugim argumencie. Tak, mam go od kontrolera inicjalizacji jak poniżej -

<?php 
class Test_cont extends CI_Controller { 
function __construct() 
{ 
    parent::__construct(); 
} 

function test() 
{ 
    $params = "abc"; 
    $this->load->library("test_lib",$params); 
} 
} 

otrzymuję następujący błąd -

PHP wystąpił błąd Zagrożenie: Wiadomość Warning: Missing argument, .....

Proszę o pomoc.

Odpowiedz

21

$params musi być tablicą. From the documentation:

W funkcji biblioteki ładunkowej można dynamicznie przekazać dane w postaci tablicy za pomocą drugiego parametru i zostanie on przekazany do konstruktora klasy:

$params = array('type' => 'large', 'color' => 'red'); 

$this->load->library('Someclass', $params); 

W twoim przypadku, chcesz zrobić coś takiego:

function test() 
{ 
    $params[] = "abc"; // $params is an array 
    $this->load->library("test_lib",$params); 
} 
+0

hi jaki sposób możemy uzyskać dostęp '$ params' w bibliotece .. – user254153

+2

jeśli konstruktor jest jak function __construct ($ param1 = null, $ param2 = null, $ param3 = null), a następnie w jaki sposób przekazać parametry ???/ –

+0

średnia, jeśli nie chcę przekazać tablicy. –

3

wystarczy zmodyfikować $ params z Vari w stanie do tablicy. nadzieję, że to będzie działać

function test() 
{ 
    $params = array(1=>'abc'); 
    $this->load->library('test_lib',$params); 
} 
Powiązane problemy