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

これは、その要素の最初に取得できない配列ではないように私には聞こえます。。

だから私の質問は、single.view.phpに値を送信する代わりに、$post変数の最初の要素を取得する方法です。

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 に答える