试图遍历对象数组PHP
我有,我想分析从SQL-行输入对象的方法:试图遍历对象数组PHP
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;
}
Howe ver,这不起作用。那么如何做到这一点? (我已经尝试了多种方法,但没有真正做了什么,我一直在寻找)
你必须访问,而美元符号的对象属性,例如:
foreach($pics as $picObj) {
echo $picObj->fileName;
}
现在正在工作。另外,我必须删除我班的美元符号,例如$ this-> id不是$ this - > $ id,如用户Phpstall所述。 – octavio
尝试array_push($pics, $newObj);
代替$pics[] = $newObj;
编辑:
你可以发表你的extract(value)
方法?
它是原生的php [method](http:// php .net/manual/bg/function.extract.php) – memo
在构造函数中类,你犯了一个错误
$此 - >的$ id = $ id为错误
$这个 - > ID = $ id为正确
同所有其他变量
这固定它与同时访问没有$的对象属性。 – octavio
检查哟你的语法。 '$ this-> id'不是'$ this - > $ id','echo $ picObj-> fileName;''不是'echo $ picObj - > $ fileName;' – check