2012-05-18 14 views
8

Sto usando il codeigniter. Ho definito una libreria in CodeIgniter e si aspetta un parametro nelle sue constructor.This è il mio codice biblioteca -Carica la libreria passando il parametro al costruttore nel codeigniter

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

Nella documentazione CodeIgniter, si è detto che è possibile passare il parametro nel secondo argomento. Quindi, io sono in fase di inizializzazione dal controller come qui sotto -

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

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

sto ottenendo seguente errore -

Un PHP errore è stato rilevato gravità: Messaggio di avviso: argomento mancante .....

Si prega di aiutare.

risposta

21

$params deve essere una matrice. From the documentation:

Nella funzione di caricamento della libreria è possibile passare in modo dinamico i dati come un array tramite il secondo parametro e sarà passato al costruttore di classe:

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

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

Nel tuo caso, si vuole di fare qualcosa di simile:

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

ciao come possiamo accedere '$ params' nella biblioteca .. – user254153

+2

se il mio costruttore è come la funzione __construct ($ param1 = null, $ param2 = null, $ param3 = null) poi come passare parametri ???/ –

+0

significa se non voglio passare un array. –

3

Hai solo bisogno di modificare le $ params da una Vari in grado di array. spero che questo funzionerà

function test() 
{ 
    $params = array(1=>'abc'); 
    $this->load->library('test_lib',$params); 
} 
Problemi correlati