Php 函数返回的结果集上的mysqli_free_result()
我有一个函数执行简单查询并返回结果集:Php 函数返回的结果集上的mysqli_free_result(),php,mysqli,Php,Mysqli,我有一个函数执行简单查询并返回结果集: function getAdmins($dbcon) { $qry = "SELECT * "; $qry .= "FROM admins "; $result = mysqli_query($dbcon, $qry); if (!$result) die("Admin query failed"); return $result; } 我想知道当我这样做的时候到底发生了什么: $admin_result
function getAdmins($dbcon) {
$qry = "SELECT * ";
$qry .= "FROM admins ";
$result = mysqli_query($dbcon, $qry);
if (!$result) die("Admin query failed");
return $result;
}
我想知道当我这样做的时候到底发生了什么:
$admin_result = getAdmins($dbcon);
// do stuff with $admin_result
mysqli_free_result($admin_result);
我是从
getAdmins()
返回对我在那里创建的$result
变量的引用并释放该变量,还是在$admin\u result
中创建$result
的副本,并在函数返回时释放原始的$result
?然后我是否也需要像现在这样释放$admin\u result
?我只是想知道这个过程到底发生了什么。我习惯使用C语言,如果是内存管理,则会出现一些问题。您可以使用spl\u object\u hash来检测$admin\u result和$result是否是同一个对象
在getAdmins函数中:
echo 'hash of $result is '. spl_object_hash($result) . '<br/>';
return $result;
echo“$result的哈希为”。spl\u对象\u散列($result)。'
;
返回$result;
然后
$admin_result = getAdmins($dbcon);
echo 'hash of $admin_result is '. spl_object_hash($admin_result) . '<br/>';
$admin\u result=getAdmins($dbcon);
echo“$admin\u结果的哈希为”。spl\u object\u hash($admin\u result)。'
;
如果两个散列相同,则表示它们是相同的对象