获取从查询阵列

问题描述:

$post= ('SELECT * FROM posts WHERE id = :id LIMIT 1 ', array('id' => $_GET['id']),$conn); 
$view_path = 'views/single.view.php'; 
require'views/layout.php'; 

第一要素我知道$后变量是一个数组,如果我print_r的是我的single.view.php?ID = 1获取从查询阵列

我可以得到下面的结果。

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [0] => 1 
      [title] => title of 
      [1] => first post 
      [body] => body of first post 
      [2] => body of first post 
     ) 

) 

等single.view.php如果我写

echo $post**[0]**['title']; 

我能拿到冠军。

但是当我尝试这对我的single.php写

$post= ('SELECT * FROM posts WHERE id = :id LIMIT 1 ', array('id' => $_GET['id']),$conn)**[0]**; 

我得到

Parse error: parse error in /Library/WebServer/www/single.php on line 10 

这听起来好像这不是一个数组,你不能获得第一的它的元素。

所以我的问题是我如何能得到的第一个元素发送值$我后variable.instead到single.view.php

+0

在那里做星号是什么? – PeeHaa 2013-02-20 18:19:09

+0

只是为了指出[0]。没什么特别的。 – 2013-02-20 18:19:58

+0

这是什么[0];在第10行的末尾? – 2013-02-20 18:20:49

此前PHP 5.4,你不能直接从函数检索数组元素:

$val = myArray($params)[0]; // wrong 

但是,你可以这样做:

$arr = myArray($params); 
$val = $arr[0]; 

$val = current(myArray($params)); 

current() Reference

+0

我使用'PHP 5.4.3'和'$ val = myArray($ params)[0];'工作得很完美。 – vikingmaster 2013-02-20 18:25:46

+0

是的,但显然OP没有使用PHP 5.4,或者它可以工作。我澄清了我的答案。 – 2013-02-20 18:27:11

您不能访问数组一样,在PHP 5.4 <版本。你必须走很长的路。

https://wiki.php.net/rfc/functionarraydereferencing

+0

即将推出的版本是5.4这是一段时间了;) – PeeHaa 2013-02-20 18:22:59

+0

@PeeHaa - 哦,哈哈我不知道。 – Galen 2013-02-20 18:23:58