如何将类变量作为数组传递给另一个类变量?

时间:2014-03-18 02:18:13

标签: php arrays methods

我想将一个变量传递给一个数组。我有两节课。一个MenuClass用于注册菜单 - 我需要将变量填充为数组。我将使用扩展的第二个类,并传入多个菜单。所以我需要每次运行将另一个项目插入Main->loaded_menus[]数组。

它们被加载到不同的文件中,但同时加载。这是我正在使用的一个非常基本的例子......

class Main {

    public $loaded_Menus = array();

    public function __construct() {}

}

class MenuClass {

    public $name;
    public $id;

    public function build($id, $name) {

        $this->id = $id;
        $this-name = $name;

        $populate = new Main;
        $populate->loaded_Menus[$this->id] = $this->id;
    }
}

1 个答案:

答案 0 :(得分:1)

当你从另一个类扩展时,所有公共属性都将被继承,因此你不需要创建父类的新实例

class MenuClass extends Main {

   public $name;
   public $id;

   public function build($id, $name) {

     $this->id = $id;
     $this-name = $name;

     $this->loaded_Menus[$this->id] = $this->id;
   }
}

如果要将所有先前的值保留在父类中,请将其定义为static;因此,当您的页面处于活动状态时,将保留值

class Main {

   public static $loaded_Menus = array();
   public function __construct() {}

}

class MenuClass extends Main {

  public $name;
  public $id;

  public function build($id, $name) {

     $this->id = $id;
     $this-name = $name;

     parent::$loaded_Menus[$this->id] = $this->id;
  }
}