PHP新手,oop&笨。 我的CI版本是3.1.2。
我正在尝试加载我构建的库,试图理解面向对象的原则。可能我错过了什么。
以下是我的图书馆。
<?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抛出以下错误消息。
致命错误:调用未定义的方法CI_Loader :: get_url()
作为一个新手,我可能会错过某种OO花哨的东西。我只是想不出来。非常感谢任何帮助。
提前谢谢
答案 0 :(得分:1)
试试这个,
$this->load->library('dps',$params);
echo $this->dps->get_url();
答案 1 :(得分:0)
始终像Codeigniter一样在
中加载库$this->load->library('library_name');
使用
调用库的方法$this->library_name->method_name();
所以试试这样......
将您的资料库保存在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";
}
}