1

我是 PHP OOP 的新手,我在获取数组时遇到问题。

class example
{
    public $array;

    public function __construct()
    {
        $this->array = array();

    }

    public function do_work()
    {
        $this->array[] = 'test';
    }
}
$test = new example();
$test->do_work();
$test->array;

我不断得到一个空数组而不是“测试”。我究竟做错了什么?

4

2 回答 2

5

这是因为您从未真正调用过该函数$test->do_work(); 构造函数只是创建了一个空数组,然后您尝试访问该属性。它应该是空的。

更新

我看到你更新了你的问题。如果你简单echo $test->array,它应该只是打印Array。但是,当我复制您更新的代码并执行 avar_dump($test->array)时,这是我得到的输出:

array(1) { [0]=> string(4) "test" } 

我相信这是你所期待的。但是,您在问题中的代码不应输出任何内容。你什么都不做$test->array,变量正在被评估然后被丢弃。

于 2012-05-11T19:59:02.607 回答
4

你的最后一句话,$test->array;实际上并没有做任何事情。我的猜测是您正在使用类似echo. 如果您使用例如var_dump,您的代码应该输出数组,请参阅键盘上的示例

于 2012-05-11T20:08:47.263 回答