【问题标题】:Unable to access function in codeigniter library无法访问 codeigniter 库中的函数
【发布时间】:2017-02-13 06:16:49
【问题描述】:

PHP、oop 和 codeigniter 的新手。 我的 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()

作为一个新手,我可能会错过一些面向对象的花哨的东西。我就是想不通。非常感谢任何帮助。

提前谢谢你

【问题讨论】:

    标签: php codeigniter oop object


    【解决方案1】:

    试试这个,

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

    【讨论】:

    • 嗨,我在尝试时收到“消息:未定义变量:模式”错误
    • 哎呀,你应该用小写字母代替大写字母,在加载库时,检查我编辑的答案。 @ElaBuwa
    • 我收到 2 个错误。 1. 消息:未定义变量:模式 -> 指向库。 2. 消息:无法访问空属性 -> 指向库。所有错误都指向“if($this->$mode == "TEST"){"
    • $this-&gt;$mode 的两行更改为$this-&gt;mode
    【解决方案2】:

    总是像这样在 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";
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      • 1970-01-01
      • 2014-09-14
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多