我最近“继承”了一个 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/