Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何申报';子对象';在PHP中_Php_Oop - Fatal编程技术网

如何申报';子对象';在PHP中

如何申报';子对象';在PHP中,php,oop,Php,Oop,我对PHP中的OOP比较陌生,我不确定我尝试做的是可能的还是推荐的。无论如何,我都搞不懂。我很感激任何对教程或文档有帮助的指点——我不希望这里有一个完整的答案 我有一个系统,每个用户都有许多“库”。每个库包含许多“元素” 数据库设置如下所示: user_libraries - id (unique) - user_id (identifies user) - name (just a string) elements - id (unique) - content (a string

我对PHP中的OOP比较陌生,我不确定我尝试做的是可能的还是推荐的。无论如何,我都搞不懂。我很感激任何对教程或文档有帮助的指点——我不希望这里有一个完整的答案

我有一个系统,每个用户都有许多“库”。每个库包含许多“元素”

数据库设置如下所示:

user_libraries
 - id (unique)
 - user_id (identifies user)
 - name (just a string)

elements
 - id (unique)
 - content (a string)

library_elements
 - id (unique)
 - library_id
 - element_id
其中,
library\u id
是来自
user\u libraries
的id,
element\u id
是来自
elements
的id

我希望能够访问给定用户的库及其元素

我已经设置了library类,可以使用它检索库列表(或子列表)

我是这样做的:

$mylibraryset = new LibrarySet();
$mylibraryset->getMyLibraries();
$mylibrary->sublibraries[0]->element[0]
其中给出(当我使用print\u r时):

现在,我希望能够为每个库(data_数组中的元素)检索所有元素

到目前为止,我的最佳想法是:

foreach($mylibrary->data_array as $library) {
 $sublibrary = new Library();
 $sublibrary -> getAllElements();
}
其中Sublibrary是另一个具有函数GetAllegements的类。我不能让它工作,但我不确定我是在正确的线路上

有没有一种方法可以让我最终做这样的事情:

$mylibraryset = new LibrarySet();
$mylibraryset->getMyLibraries();
$mylibrary->sublibraries[0]->element[0]
要检索特定元素

正如我所说,我不希望这里有一个全面的解释——只是一些让我开始的指针。


<?php

class Library {
    public $element;
    public $data;
    public function __construct($sublibrary) {
        $this->data = $sublibrary;
    }
    public function getAllElements() {
        // populate $this->element using $this->data
    }
}

class LibrarySet {
    public $user_id;
    public $data_array;
    public $sublibraries;
    public function getMyLibraries() {
        // populate $this->data_array

        $this->sublibraries = Array();
        foreach($this->data_array as $index => $sublibrary) {
            $this->sublibraries[$index] = new Library($sublibrary);
            $this->sublibraries[$index]->getAllElements();
        }
    }
}

$mylibraryset = new LibrarySet();
$mylibraryset->getMyLibraries();

$mylibraryset->sublibraries[0]->element[0]

?>

哇,谢谢!我没想到会有一个完整的答案,但你真的帮了大忙。这也帮助我理解它。再次感谢。