Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我必须使用foreach才能访问此值吗?_Php_Arrays_Oop - Fatal编程技术网

Php 我必须使用foreach才能访问此值吗?

Php 我必须使用foreach才能访问此值吗?,php,arrays,oop,Php,Arrays,Oop,可能重复: 我在一个类中有一个函数,它返回单个项的数据数组 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(

可能重复:

我在一个类中有一个函数,它返回单个项的数据数组

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'])['title']
在PHP5.4之前是不可能的

$item_data = $this->retrieveItemData($rep['source']);

$item_data['title'];
在早期版本中,您必须使用一个临时变量,如Trevor的答案中所示。因此,您希望更改调用函数的代码:

$item_data = $this->retrieveItemData($rep['source']);
$this->return .= '<td>' . $item_data['title'] . '</td>';
$item_data=$this->retrieveItemData($rep['source']);
$this->return.=''$项目_数据['title']。';

尝试打印,这样可以更好地分析数组。如果不看到parent::query()函数,我的最佳猜测是fetch返回一组行。请尝试
$this->retrieveItemData($rep['source'])[0]['title']
。雷戈是对的。print\u r将为您提供一个很好的视角。如果我这样做@tommarshall,我会得到语法错误,意外的“[”
$item_data = $this->retrieveItemData($rep['source']);

$item_data['title'];
$item_data = $this->retrieveItemData($rep['source']);
$this->return .= '<td>' . $item_data['title'] . '</td>';