php - 有没有理由用它自己的元素之一覆盖数组变量?

标签 php mysql mysqli

我最近“继承”了一个 PHP 网络应用程序,该应用程序使用 mySQL 数据库作为其后端的一部分。在检查代码时,我遇到了一个让我非常困惑的 block 。

$results = array();
$results[] = $mysqli_result->fetch_array();
$results = $results[0];

return $results;

所以我得到前两行正在初始化一个空数组并将先前查询的第一行结果分配给该新数组。但是第三行对我来说没有意义。据我了解,fetch_array() 一次只抓取一行;我想不出有任何理由使用 $results = $results[0]; 行。我能想到的最好的办法是,它是 mysql_result 被删除后的剩余代码。

第三行有什么理由吗?

最佳答案

不,没有理由。这只是“ cargo 崇拜代码”的一个例子。当您不知道如何正确地做某事时,您只是复制/粘贴一些现有代码而没有真正理解是否有必要。

当然创建一个数组,然后在这个数组中创建一个新元素,然后用第一个元素重新赋值这个数组变量是没有意义的。相反,只需分配一个变量:

$result = $mysqli_result->fetch_array();

或者 - 更好 - 因为这个变量在赋值后立即返回,所以只需立即返回它,因为 $result 变量不会在其他任何地方使用。

return $mysqli_result->fetch_array();

关于php - 有没有理由用它自己的元素之一覆盖数组变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55834046/

相关文章:

php - mySQLi 查询未提供正确的信息

php - 如何从客户端终止 php 连接?

php - 无法使用 PhpMailer 和 Codeigniter 通过 Outlook SMTP 发送电子邮件

php - Yii2 自定义 http 异常 View

MySQL 工作台 : Start Transaction seems to be committed before rollback

php - 如何在php中选择最后10秒添加的数据

PHP - 复选框值以编辑形式显示在文本框中

javascript - 正则表达式:嵌套标签

php - PHP、SQL 和 jQuery 之间的动态 ID

php - 在已经建立的连接中使用 mysqli::prepare 使用prepare?