Я использую следующий синтаксис в качестве удобства, обычно при возврате одной строки из запроса на дБ. Моя 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];
}
Функция Array разыменования 'return $ stmt-> fetchAll() [0];' была введена в PHP 5.4.0 - http://php.net/manual/en/migration54.new-features.php –
Большое спасибо ! Очищено, что до –