Используя следующее: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 и пытается много альтернатив, я не могу возьмите эту переменную. Я надеюсь, что я делаю ошибку новобранец и не замечаю что-то глупое. Спасибо за любую помощь!
Edit: Класс определение
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
Вопрос запутан. Является ли переменная '$ last_book' или' $ tz_books'? Поскольку '$ last_book' является * массивом *, а не объектом, если я понимаю ваш пример. – deceze
У вас есть определение класса? Возможно, author_id является частной собственностью. Кроме того, может быть метод геттера. А если нет, вы можете это сделать. Отправьте определение своего класса, и я помогу вам. –