2014-09-04 3 views
0

Я использую следующий синтаксис в качестве удобства, обычно при возврате одной строки из запроса на дБ. Моя IDE (netbeans) не нравится, но работает нормально. Может ли кто-нибудь сказать мне, если он неверен, и если да, если есть более аккуратный способ, чем очевидная альтернатива, которую я показал.Является ли этот синтаксис PHP правильным или нет?

function select_row_from_database($id){ 
     //$pdo is created etc 
     $stmt = $pdo->prepare('SELECT * FROM table WHERE id = ?'); 
     $stmt->execute(array($id)); 
     return $stmt->fetchAll()[0]; 
} 

Альтернативное обозначение, чем NetBeans любит:

function select_row_from_database($id){ 
     //$pdo is created etc 
     $stmt = $pdo->prepare('SELECT * FROM table WHERE id = ?'); 
     $stmt->execute(array($id)); 
     $result = $stmt->fetchAll(); 
     return $result[0] 
} 

Как я использую CodeIgniter я могу сделать это с помощью CI активной записи (что, возможно, демонстрирует удобство лучше)

function select_row_from_database($id){ 
     return $this->db->query('SELECT * FROM table WHERE id = ?',array($id))->result_array()[0]; 
} 

Альтернатива без противной красной подсветки:

function select_row_from_database($id){ 
     $result = $this->db->query('SELECT * FROM table WHERE id = ?',array($id))->result_array(); 
     return $result[0]; 
} 
+0

Функция Array разыменования 'return $ stmt-> fetchAll() [0];' была введена в PHP 5.4.0 - http://php.net/manual/en/migration54.new-features.php –

+0

Большое спасибо ! Очищено, что до –

ответ

1

Netbeans официально поддерживает функции 5.4.

Как показано here:

Примечание: Все функции PHP 5.4 доступны в проектах после установки Свойства проекта -> Источников -> PHP версия 5.4 значения PHP, или после выбора одинакового значения во время создание PHP-проекта (в Мастере создания проектов).

Обратите внимание, что это доступно для NetBeans IDE for PHP 7.3 + only.

+0

Спасибо, очень полезно –

0

То, что вы пытаетесь сделать, называется разыменованием массивов и является новым в PHP 5.4. Вероятно, поэтому netbeans ему не нравится, но он должен работать, если вы используете PHP 5.4 или новее. Вы можете прочитать о новых функциях здесь http://php.net/manual/en/migration54.new-features.php

+0

Большое спасибо –

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