从 class 定义的数组在函数中构造 returns 1

Array defined from class construct returns 1 in functions

我这里有这段代码:

class Class_name extends CI_Controller {

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

        $this->user = array("value"=>"test");
    }
    public function index() {
        print_r($this>user);
    }
}

问题是 $this->user returns 为 1 而不是实际数组。 我试过其他变量名,但没有成功。

我做错了什么?

彼得

你这里有一点错别字:

print_r($this>user);

改为:

print_r($this->user);

你打错了。

print_r($this>user);

应该是:

print_r($this->user);

这很好用:

class foo {
    function __construct()
    {
        $this->user = array("value"=>"test");
    }
    public function index() {
        print_r($this->user);
    }
}
$foo= new foo();
$foo->index();
# Results in:
# Array
# (
#     [value] => test
# )

有趣的是,这是因为在 PHP 中,对象 'greater' 而不是字符串:

var_dump(new stdClass > 'foo');
# bool(true)

您应该在 print_r($this>user) 行中使用 ->
这是编辑后的脚本:

class Class_name extends CI_Controller {

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

        $this->user = array("value"=>"test");
    }
    public function index() {
        print_r($this->user);
    }
}
 public function index() {
        print_r($this->user);
    }