[英]Trying to iterate array of objects PHP
我有一種方法,希望將來自SQL行的輸入解析為一個對象:
function buildPictureArray($sqlRow) {
$pics = [];
foreach($sqlRow as $value) {
extract($value); // How to do this more elegant?
$newObj = new PICObject($id, $filename, $thumb . $filename, $full . $filename, $title, $subtitle); // These are column names I got from extract
$pics[] = $newObj;
}
return $pics;
}
我的PICObject看起來像這樣:
Class PICObject {
public $id;
public $fileName;
public $thumbLink;
public $fullLink;
public $title;
public $subTitle;
function __construct($id, $fileName, $thumbLink, $fullLink, $title, $subTitle) {
$this->$id = $id;
$this->$fileName = $fileName;
$this->$thumbLink = $thumbLink;
$this->$fullLink = $fullLink;
$this->$title = $title;
$this->$subTitle = $subTitle;
}
}
現在,理想情況下,我想迭代此$ pics數組,該數組現在應包含幾個PICObjects並且能夠訪問其字段:
foreach($pics as $picObj) {
echo $picObj->$fileName;
}
但是,這不起作用。 那么該怎么做呢? (我已經嘗試了幾種方法,但是沒有真正做我想要的東西)
您必須訪問不帶美元符號的對象屬性,例如:
foreach($pics as $picObj) {
echo $picObj->fileName;
}
嘗試array_push($pics, $newObj);
而不是$pics[] = $newObj;
編輯:
可以發布您的extract(value)
方法嗎?
在構造函數類中,您犯了一個錯誤
$ this-> $ id = $ id錯誤
$ this-> id = $ id是正確的
所有其他變量相同
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.