这里有一件奇怪的事情。
从某个php文件调用名为user_get_specific_data
的类_user_profile
的静态函数。
/**
* Get User Email
*/
$ud = _user_profile::user_get_specific_data(['username'], $body_params['user_id']);
呼叫降落在正确的位置。
/**
* Reads the fields from the user table and returns as an array
* @param array $data Associative array Parameters to read
*/
public static function user_get_specific_data($data,$userId){
$output['status'] = false;
$arr = self::query_get_specifc_fields($data, $userId); // calls a private static function
if($arr['status']) {
unset($arr['status']);
$r = DB_Read($arr);
if($r) { // BLOCK F
$output['status'] = true;
$output['data'] = $r[0];
}
}
return $output;
}
成功时,它将返回一个类似于:
的数组[
'status' => true,
'data' => [...] // array
]
所以,我已经调试了代码,并且在检查时(调试时)函数和语句return $output
中的一切都很顺利,包含它将在成功时返回的数组,但是当它返回时我检查{{ 1}},我看到一个看起来像的数组:
$ud
为什么?发生了什么?代码始终输入['status' => false]
,但BLOCK F
始终收到$ud
!我称之为鬼重写!!
重要输入:如果我在功能false
$output['status'] = false;
内发表评论user_get_specific_data
,则始终会收到$ud
。在我看来,这似乎是一个范围问题。
在下图中,代码输入null
,BLOCK F
包含一个数组,但其var_dump不会评估!