如果这是愚蠢的,仍然只是学习 PHP 很抱歉!我有一个循环遍历 mysql 邻接表的函数。我想将此作为数组返回。看起来很好,因为如果当我返回函数时,我会执行 print_r($path); 其中 $path 是函数内部的数组,该数组按我想要的方式打印。
问题是我看不到为什么我无法通过
$patharray = functioncalled($vars);
我试过使用 return $path; 也只是print_r
在数组中,但它不断返回NULL
。
function getParPath($mysqli, $showpar, $path) {
// Get Parent Path
$query ="select loc_id, loc_name, loc_parent from locations where loc_id = ? LIMIT 0,1";
if ($stmt = mysqli_prepare($mysqli, $query)) {
/* pass parameters to query */
mysqli_stmt_bind_param($stmt, "s", $showpar);
/* run the query on the database */
mysqli_stmt_execute($stmt);
/* store result */
mysqli_stmt_store_result($stmt);
/* assign variable for each column to store results in */
mysqli_stmt_bind_result($stmt, $loc_id, $loc_name, $loc_parent);
/* fetch values */
while (mysqli_stmt_fetch($stmt)) {
$path[] = $loc_name;
if ($loc_parent !='0'){
getParPath($mysqli, $loc_parent, $path);
}
if ($loc_parent =='0'){
$path = array_reverse($path);
return $path; // uncommented per answers below.
//print_r($path); //commented out per answers below.
}
}
}
}
$patharray = getParPath($mysqli, $showcld, $path);
//print_r(getParPath($mysqli, $showcld, $path)); // removed per answers below
var_dump($patharray); //removed echo per answers below
exit;
返回:
Array
(
[0] => BuildingA
[1] => FloorA
[2] => RoomA
)
Array
(
[0] => BuildingA
[1] => FloorA
[2] => RoomA
)
NULL
从最后一行可以看出,$patharray
我设置给函数调用的数组是NULL
. 如果我尝试print_r
在函数内部,则会打印一个数组,如果我直接尝试print_r
该函数,它会返回一个数组。但不是我可以使用的对象。