在PHP中返回数组变量

时间:2018-02-07 08:05:19

标签: php arrays codeigniter

我有一个函数,我想将一个变量返回给另一个函数。

我可以返回数组变量,以便可以在其他函数中使用该变量吗?

public function update_mdr_pameran() {
  //global $araydatamdr;
  $this->config->set_item('compress_output', FALSE);
  $araydatamdr['mdr_debit'] = trim($this->input->post('mdr_debit'));
  $araydatamdr['mdr_debit_npg'] = trim($this->input->post('mdr_debit_npg'));
  $araydatamdr['mdr_debit_pl'] = trim($this->input->post('mdr_debit_pl'));
  return $araydatamdr;
}

当我尝试在另一个函数中使用$araydatamdr时,它变为0.

我错过了什么吗?

2 个答案:

答案 0 :(得分:3)

您可以通过调用函数并将其返回值设置为另一个变量来实现此目的。

方法1:

class Test extends CI_Controller {

        public function __construct() {
            parent::__construct();    
        }

        public function update_mdr_pameran() {
                //global $araydatamdr;
                $this->config->set_item('compress_output', FALSE);
                $araydatamdr['mdr_debit'] = trim($this->input->post('mdr_debit'));
                $araydatamdr['mdr_debit_npg'] = trim($this->input->post('mdr_debit_npg'));
                $araydatamdr['mdr_debit_pl'] = trim($this->input->post('mdr_debit_pl'));
                return $araydatamdr;
        }

        public function test_func() {
            $araydatamdr = $this->update_mdr_pameran();
            var_dump($araydatamdr);
        }

    }

或者您也可以将$ araydatamdr设置为$ this reference。

方法2:

class Test extends CI_Controller {

    public $araydatamdr;
    public function __construct() {
        parent::__construct();    
        $this->araydatamdr = [];
    }

    public function update_mdr_pameran() {
            $this->config->set_item('compress_output', FALSE);
            $this->araydatamdr['mdr_debit'] = trim($this->input->post('mdr_debit'));
            $this->araydatamdr['mdr_debit_npg'] = trim($this->input->post('mdr_debit_npg'));
            $this->araydatamdr['mdr_debit_pl'] = trim($this->input->post('mdr_debit_pl'));
    }

    public function test_func() {
        $this->update_mdr_pameran();
        var_dump($this->araydatamdr);

    }

}

答案 1 :(得分:0)

可以使用echo $araydatamdr;var_dump打印print_r阵列。你也可以在php中返回一个数组,但我个人更喜欢首先对它进行json_encode,所以我返回一个json作为我函数的输出,如:

return json_encode($araydatamdr);

然后这是一个简单的函数调用。

我不知道你的项目结构,但我给出了一般指导。除此之外,我没有看到任何其他可以阻止你的功能。

我编辑我的帖子,因为我看到问题是调用该函数。根据您的调用方式,有两种方式。如果该函数与您想要调用的其他函数位于同一个类中,则可以使用:

$result=$this->update_mdr_pameran();

我看到你的函数没有参数,所以你不需要设置任何参数。如果它在另一个文件中:

1)将您的php文件包含在顶部,如:

require 'myphpclass.php'; 

*提示确保您的路径正确。

2)创建一个新的类对象,然后调用如下函数:

$class= new myClass();
$result=$class->update_mdr_pameran();