我在一个类中有一个函数,它返回单个项目的数据数组。
public function retrieveItemData($item_id) {
$stmt = parent::query("SELECT title FROM `item_main` WHERE `item_id` = $item_id");
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) :
$item = array(
'id' => $item_id,
'title' => $row['title'],
'url' => $item_id . '/' .$this->generate_seo_link( $row['title'], '-')
);
endwhile;
return $item;
}
在类的其他地方我调用这样的函数
$this->return .= '<td>' . $this->retrieveItemData($rep['source']) . '</td>';
$this->retrieveItemData($rep['source'])
显然正在打印“数组”,如何从这里访问标题密钥?
我试过了
$this->retrieveItemData($rep['source'])['title']
和
$this->retrieveItemData($rep['source'])->title
但没有运气。
答案 0 :(得分:2)
$item_data = $this->retrieveItemData($rep['source']);
$item_data['title'];
答案 1 :(得分:1)
函数调用上的数组访问语法:在PHP 5.4之前无法使用$this->retrieveItemData($rep['source'])['title']
。
在早期版本中,您必须使用Trevor的答案中的临时变量。因此,您需要将调用函数的代码更改为:
$item_data = $this->retrieveItemData($rep['source']);
$this->return .= '<td>' . $item_data['title'] . '</td>';