我通常在从dB查询返回单行时使用以下语法。我的IDE(netbeans)不喜欢它,但它工作正常。任何人都可以告诉我它是否不正确,如果有的话,如果有一个更简洁的方式,而不是我所展示的明显替代方案。
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 :(得分:1)
Netbeans正式支持5.4功能。
如图所示here:
注意:设置项目属性后,项目中可以使用所有PHP 5.4功能 - >来源 - > PHP版本到PHP 5.4值,或者在创建PHP项目期间选择相同的值(在“新建项目向导”中)。
请注意,NetBeans IDE for PHP 7.3 + only可以使用此功能。
答案 1 :(得分:0)
你要做的是称为数组解除引用,它是PHP 5.4中的新功能。这可能就是为什么netbeans不喜欢它,但如果你使用的是PHP 5.4或更新版本它应该可以工作。您可以在此处阅读http://php.net/manual/en/migration54.new-features.php
中的新功能