PHP - 如何从类的“外部”设置多维数组属性的值?

时间:2010-11-01 15:36:05

标签: php properties multidimensional-array

我正试图绕过一些我似乎无法找到解决方案的东西。在A类中,我有一个属性,它是一个多维数组。在类A中实例化的类B中,我想从类A设置属性的索引值。我遇到了一个墙,在那里我不知道如何迭代属性来设置索引的值我我需要。这是我的意思的一个测试例子:

<?php

class SomeClass
{
    protected $class;
    protected $book;


    public function __construct()
    {
        $this->book["genre"]["title"] = "The Haunting";
    }


    public function SomeTest()
    {
        $this->class = new AnotherClass();
        $this->class->AnotherTest();
    }
}

class AnotherClass
{
    protected function setBook()
    {
        $indexes = func_get_args();
        $value   = array_pop($indexes);

        /**
         * So now I have the indexes which lead to the array
         * depth I'd like to set a value to, but where do I
         * go from here?
         *
         */
    }

    public function AnotherTest()
    {
        $this->setBook("something", "else", "1984");
    }
}



$someclass = new SomeClass();
$someclass->SomeTest();

&GT;

我很失落如何做我正在考虑的事情。

2 个答案:

答案 0 :(得分:0)

使用参数启动class Another,传递启动器类!

class SomeClass{
    public function SomeTest()    {
        $this->class = new AnotherClass($this);
        $this->class->AnotherTest();
    }
}

我在这些情况下使用创作者!

class AnotherClass{
    function __contruct($creator){
        $this->creator=$creator
    }

    function AnotherTest(){
        $this->creator->setBook("something", "else", "1984");
    }

答案 1 :(得分:0)

在这种情况下你为什么不使用继承?您的财产受到保护,我认为不应该在课堂外访问。

Hay你试过继承吗?。

感谢。