2013-02-20 2 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

+0

просто указать [0]. ничего особенного. –

+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

+0

Да, но, очевидно, OP не использует PHP 5.4 или он бы сработал. Я уточнил свой ответ. –

1

Вы не можете получить доступ к массивам как и в версиях PHP < 5.4. Вы должны сделать это долгий путь.

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

+0

Эта будущая версия 5.4, которая отсутствует в течение некоторого времени;) – PeeHaa

+0

@PeeHaa - О, ха-ха, я понятия не имел. – Galen

Смежные вопросы