2017-02-13 56 views
0

PHP新手,oop & codeigniter。 我的CI版本是3.1.2。无法访问codeigniter库中的函数

我想加载一个我建立的库,试图理解面向对象的原则。可能我错过了一些东西。

以下是我的图书馆。

<?php 
class DPS { 
    private $mode; 

    public function __construct($params){ 
     //print_r($params); 
     $this->mode = $params['mode']; 
    } 

    public function get_url(){ 
     if($this->$mode == "TEST"){ 
      return "https://uat.paymentexpress.com/pxaccess/pxpay.aspx"; 
     } elseif($this->$mode == "LIVE"){ 
      return "https://sec.paymentexpress.com/pxaccess/pxpay.aspx"; 
     } 
    } 
} 
?> 

我试图访问下面的控制器中的get_url方法。

$params = [ 'mode' => 'TEST']; 
$dps = $this->load->library('DPS',$params);  
echo $dps->get_url(); 

Codeigniter正在抛出下面的错误消息。

Fatal error: Call to undefined method CI_Loader::get_url()

作为一个新手我可能会错过某种OO花式thingi。我无法弄清楚。任何帮助是极大的赞赏。

预先感谢您

回答

1

试试这个,

$this->load->library('dps',$params);  
echo $this->dps->get_url(); 
+0

您好,我得到“消息:未定义的变量:模式”的错误,当我尝试 –

+0

哎呀,你应该让小写字母而不是大写,同时加载库,检查我的编辑答案。 @ElaBuwa – Viral

+0

我得到2个错误。 1.消息:未定义的变量:模式 - >指向库。 2.消息:无法访问空属性 - >指向库。所有的错误都指向“if($ this - > $ mode ==”TEST“){” –

0

总是加载库在笨这样

$this->load->library('library_name'); 

并调用库的方法使用

$this->library_name->method_name(); 

SO尝试像这样...

保存在您的application/libraries库作为Dps.php。然后

$params = [ 'mode' => 'TEST']; 
$dps = $this->load->library('dps',$params);  
echo $this->dps->get_url(); 

,并在您DPS库。纠正

public function get_url(){ 
     if($this->mode == "TEST"){ 
      return "https://uat.paymentexpress.com/pxaccess/pxpay.aspx"; 
     } elseif($this->mode == "LIVE"){ 
      return "https://sec.paymentexpress.com/pxaccess/pxpay.aspx"; 
     } 
    }