如何使用Object而不是Array构建此数据结构?

时间:2014-03-31 00:49:37

标签: php

我正在为Mustache模板构建数据结构。我可以使用数组轻松构建它。但是,由于我试图了解有关使用对象的更多信息,我想改为使用Object。

$mySlider = array("title" => "Photos of Las Vegas");
$mySlider = array("items" => array());

foreach ( $query as $row ) {
 $newItem = [];
 $newItem["postTitle"] = $row["imageTitle"];
 $newItem["postURL"] = $row["imageURL"];
}

array_push($mySlider["items"], $newItem);

这是我目前的解决方案。我不喜欢它,代码太多了。通过使用"滑块"的对象我希望能够做到这样的事情:

$mySlider = new PhotoSlider("Photos of Las Vegas");

foreach ( $query as $row ) {
 $newPhoto = $mySlider->newPhoto();
 $newPhoto->addProperty("imageTitle", $row["imageTitle"]);
 $newPhoto->addProperty("imageURL", $row["imageURL"]);
}

我知道我刚刚做了这个,但这会更好。

如何在PHP中编写此Object以使其仅使用一个类以此方式工作?当我注意到我需要另一个对象用于" newPhoto()"元素,因为这需要它自己的一些方法来做" addProperty",例如。

我很感激任何指针。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要创建2个类,一个用于PhotoSlider,另一个用于Photo。 Photoslider将拥有一系列照片,以及将Photo对象添加到PhotoSlider,删除等方法。照片类将具有set属性方法。像:

$mySlider = new PhotoSlider("Photos of Las Vegas");

foreach ( $query as $row ) {
 $newPhoto = new Photo();
 $newPhoto->addProperty("imageTitle", $row["imageTitle"]);
 $newPhoto->addProperty("imageURL", $row["imageURL"]);
 $mySlider->addPhoto($newPhoto);
}