2012-05-18 11 views
8

में कन्स्ट्रक्टर को पैरामीटर पास करके लाइब्रेरी लोड करें मैं कोडनिर्देशक का उपयोग कर रहा हूं। मैं CodeIgniter में एक पुस्तकालय में परिभाषित किया गया है और मेरे पुस्तकालय कोड है अपने constructor.This में एक पैरामीटर उम्मीद कर रही है -कोडिनेटर

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

CodeIgniter प्रलेखन में, यह उल्लेख किया है कि आप दूसरा तर्क में पैरामीटर पारित कर सकते हैं। तो, मैं नीचे के रूप में नियंत्रक से आरंभ कर रहा हूँ -

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

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

मैं त्रुटि निम्न हो रही है -

एक PHP त्रुटि गंभीरता का सामना करना पड़ा था: चेतावनी संदेश: गुम तर्क .....

कृपया सहायता करें।

उत्तर

21

$params एक सरणी होना चाहिए। From the documentation:

पुस्तकालय लोड हो रहा है समारोह में आप गतिशील रूप से दूसरा पैरामीटर के माध्यम से एक सरणी के रूप में डेटा पारित कर सकते हैं और यह अपने वर्ग निर्माता को दे दिया जाएगा:

$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); 
} 
+0

हाय कैसे हम पुस्तकालय में $ params' .. – user254153

+2

उपयोग कर सकते हैं 'अगर मेरे निर्माता समारोह __construct की तरह है ($ param1 = अशक्त, $ param2 = अशक्त, $ param3 = नल) तो कैसे पास पैरामीटर ???/ –

+0

का मतलब है कि अगर मैं एक सरणी पास नहीं करना चाहता हूं। –

3

तुम बस एक vari से $ पैरामीटर संशोधित करने की आवश्यकता सरणी करने में सक्षम उम्मीद है कि इस काम करेंगे

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