18

コードイグナイターを使用しています。コードイグナイターでライブラリーを定義し、そのコンストラクターでパラメーターを期待しています。これは私のライブラリーコードです -

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

codeigniter のドキュメントでは、2 番目の引数でパラメーターを渡すことができると記載されています。そのため、以下のようにコントローラーから初期化しています-

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

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

次のエラーが表示されます -

PHP エラーが発生しました。重大度: 警告メッセージ: 引数がありません.....

手伝ってください。

4

3 に答える 3

31

$params配列でなければなりません。ドキュメントから

ライブラリ読み込み関数では、2 番目のパラメーターを介してデータを配列として動的に渡すことができ、クラス コンストラクターに渡されます。

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

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

あなたの場合、次のようなことをしたい:

function test()
{
    $params[] = "abc"; // $params is an array
    $this->load->library("test_lib",$params);
}
于 2012-05-18T15:15:26.273 に答える
6

$paramsを変数から配列に変更するだけです。これがうまくいくことを願っています

function test()
{
    $params = array(1=>'abc');
    $this->load->library('test_lib',$params);
}
于 2012-05-18T16:19:37.093 に答える