为了方便起见,我使用以下语法,通常是在从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];
}
Netbeans正式支持5.4特性。
如图所示:
注意:在将"项目属性"->"源代码"->"PHP版本"设置为"PHP 5.4"值后,或者在创建PHP项目时(在"新建项目向导"中)选择相同的值后,所有的PHP 5.4功能都可以在您的项目中使用。
请注意,这仅适用于PHP 7.3+的NetBeans IDE。
您尝试做的叫做数组解引用,它在PHP 5.4中是新的。这可能是netbeans不喜欢它的原因,但如果您使用的是PHP 5.4或更新版本,它应该可以工作。您可以在此处阅读有关新功能的信息http://php.net/manual/en/migration54.new-features.php