我可以从概念上理解这一点,但我无法确定正确的方法。
具体而言,需要执行以下操作的对象...
class Question {
var $text;
var $filters = array();
var $banners = arrya(); //But this has to be within $filter somehow...
... //all getter and setter functions
}
现在我要查询数据库并返回一堆数据,比如 4 列。
QuestionText | Filter | Banner | Value
我想最终得到一个看起来像...的对象
Object
Questions
->Question 1
->Text = Question One
->Filters
->Filter1
->Name = Ontario
Banners
Banner 1
->Name = Male
->Value = 20
Banner 2
->Name = Famales
->Value = 20
->Filter2
->Name = Quebec
Banners
Banners
Banner 1
->Name = Male
->Value = 20
Banner 2
->Name = Famales
->Value = 20
->Question 2
->Text = Question Two
->Filters
......
.....
....
...
因为我只能逐行读取数据库,所以我需要找到一种方法来在问题/过滤器组合中添加每个新的横幅和值。最后我想把它吐出来作为一个表格,其中每个横幅都是一列。
最佳答案
首先,你需要三个类
class Question {
var $text;
var $filters;
}
class Filter {
var $name;
var $banners;
}
class Banner {
var $name;
var $value;
}
然后您将开始创建您的问题并向其添加过滤器和横幅,如下所示:
$questions = array();
$x = 0;
$result = mysql_query("SELECT * FROM `questions`");
while ($obj = mysql_fetch_object($result)) {
$questions[$x] = new Question();
$questions[$x]->text = $obj->text;
$result2 = mysql_query("SELECT * FROM `filters` WHERE `question` = {$obj->id}");
$questions[$x]->filters = array();
$y = 0;
while ($obj2 = mysql_fetch_object($result2)) {
$questions[$x]->filters[$y] = new Filter();
...
// and so on
...
$y++;
}
$x++;
}
希望对您有所帮助。
关于php - 如何在 PHP 中设计一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9081675/