如何申报';子对象';在PHP中
我对PHP中的OOP比较陌生,我不确定我尝试做的是可能的还是推荐的。无论如何,我都搞不懂。我很感激任何对教程或文档有帮助的指点——我不希望这里有一个完整的答案 我有一个系统,每个用户都有许多“库”。每个库包含许多“元素” 数据库设置如下所示:如何申报';子对象';在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
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]
?>
哇,谢谢!我没想到会有一个完整的答案,但你真的帮了大忙。这也帮助我理解它。再次感谢。