返回的数据数组不正确:重影覆盖?

时间:2016-08-22 09:28:15

标签: php function static override

这里有一件奇怪的事情。

从某个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。在我看来,这似乎是一个范围问题。

在下图中,代码输入nullBLOCK F包含一个数组,但其var_dump不会评估!

enter image description here

0 个答案:

没有答案