使用下列內容:PHP對象無法訪問的變量
$last_book = tz_books::getLast($request->db, "WHERE book_id='{$request->book_id}'");
我得到了下面的PHP對象數組,
[0] => tz_books Object
(
[db:tz_books:private] => com Object
[id] => 64BEC207-CA35-4BD2
[author_id] => 4F4755B4-0CE8-4251
[book_id] => 8FC22AA0-4A60-4BFC
[date_due] => variant Object
)
然後我想用AUTHOR_ID,但由於某種原因它不工作。
嘗試使用:
$tz_books->author_id;
使用的print_r($ last_book);打印數組到控制檯就好了。和做以下只是爲了查看是否使用了正確的變量:
$author = $tz_books->author_id;
print_r($author);
無打印到控制檯,甚至通過PHP人工掏挖,並試圖很多替代品後,我似乎無法到抓住這個變量。我希望我會犯新人的錯誤,並且忽略一些愚蠢的東西。感謝您的任何幫助!
編輯:類定義
private $db;
public $id;
public $author_id;
public $book_id;
public $date_due;
public function __construct($db, $values=null) {
$this->db = $db;
if ($values != null) {
foreach ($values as $var => $value) {
$this->$var = $value;
}
}
}
public static function retrieveAll($db, $where='', $order_by='') {
$result_list = array();
$query = 'SELECT '.
'id, '.
'author_id, '.
'book_id, '.
'date_due '.
"FROM tz_books $where $order_by";
$rs = $db->Execute($query);
while (!$rs->EOF) {
$result_list[] = new tz_books($db, array(
'id' => clean_id($rs->Fields['id']->Value),
'author_id' => clean_id($rs->Fields['author_id']->Value),
'book_id' => clean_id($rs->Fields['book_id']->Value),
'date_due' => $rs->Fields['date_due']->Value,
));
$rs->MoveNext();
}
$rs->Close();
return $result_list;
}
我看到這個權利嗎?如果是這樣,請嘗試'$ last_book [0] - > author_id;'或'$ tz_books = $ last_book [0];' – ghbarratt 2012-03-08 08:11:53
問題很混亂。是變量'$ last_book'還是'$ tz_books'?因爲'$ last_book'是一個*數組*,而不是一個對象,如果我理解你的例子。 – deceze 2012-03-08 08:12:32
你有班級定義嗎? author_id可能是一個私有屬性。另外,可能有一個getter方法。如果沒有,你可以製作一個。發佈你的班級定義,我會幫你。 – 2012-03-08 08:15:18