我有这个功能:
function Test ($test)
{
[...]
if ( $res->num_rows == 0 )
return "BAD";
$magic_array = array();
while ( $row = $res->fetch_assoc() )
$magic_array[] = $row["hex_stream"];
return $magic_array;
}
如果我尝试:
$result_array = Test($test);
var_dump($result_array);
打印:
array(3) {
[0]=>
string(8) "FFD8FFE1"
[1]=>
string(8) "FFD8FFE0"
[2]=>
string(8) "FFD8FFE8"
}
string(3) "BAD"
似乎Test()正在返回$ magic_array和" BAD"在同一时间。
为什么会这样?
谢谢
答案 0 :(得分:-2)
你的test()被调用了两次
第一次从var_dump
获得结果你第二次变坏,因为
if ( $res->num_rows == 0 ) {
return "BAD";
}
在if和while语句中使用{}的好习惯