2013-02-20 150 views
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'; 

第一要素我知道$後變量是一個數組,如果我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

回答

1

此前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