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

我知道 $post 变量是一个数组,如果我 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

在我看来,这不是一个数组,你不能得到它的第一个元素。.

所以我的问题是如何在我的 $post 变量中获取第一个元素。而不是将值发送到 single.view.php

4

2 回答 2

1

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

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

于 2013-02-20T18:19:34.767 回答
1

在 PHP 5.4 之前,您不能直接从函数中检索数组元素:

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

但是,您可以这样做:

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

或者

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

current() 参考

于 2013-02-20T18:21:23.597 回答