无法访问PHP函数之外的JSON字符串?

时间:2015-08-29 02:12:50

标签: php json function scope

我在名为curl_pair($ json_pair_filename)的PHP函数中卷曲JSON字符串。 var_dump正确显示函数内的数据,因此数据存在于函数中,但我无法访问PHP函数之外的JSON字符串。我应该改变什么?

    if(curl_exec($ch) === false)
    { // Curl error:
        //echo '<a target="_blank" href="http://curl.haxx.se/libcurl/c/libcurl-errors.html">' . curl_error($ch) . "</a>";
        include( DOMAIN_PATH . "tickers/form_curl_error.php");
        $my_data = "something went wrong...";
    }
    else // fetch the data
    {
        $my_data = curl_multi_getcontent ( $ch );
        //var_dump($my_data);   // is ok shows json string
        curl_close( $ch );
    }
    return json_encode($my_data);
}
curl_pair($json_pair_filename); // no errors

echo($my_data); // just a white screen, no data, no nothing.

2 个答案:

答案 0 :(得分:1)

我认为您需要捕获函数的输出,或者将函数调用嵌套在echo中。我不是PHP开发人员,但在大多数编程语言中,函数内部声明的变量对函数是私有的,因此$ my_data不存在于外部。但是你从你的函数中返回它,所以

$result_data = curl_pair($json_pair_filename);
echo($result_data);

应该有用。

答案 1 :(得分:0)

请尝试执行以下代码段。

在上面的代码片段中,$ my_data变量的范围在其设置的函数内。 要使它在函数外部可访问,您需要在调用该函数的位置返回值。

 if(curl_exec($ch) === false)
    { // Curl error:
        //echo '<a target="_blank" href="http://curl.haxx.se/libcurl/c/libcurl-errors.html">' . curl_error($ch) . "</a>";
        include( DOMAIN_PATH . "tickers/form_curl_error.php");
        $my_data = "something went wrong...";
    }
    else // fetch the data
    {
        $my_data = curl_multi_getcontent ( $ch );
        //var_dump($my_data);   // is ok shows json string
        curl_close( $ch );
    }
    return json_encode($my_data);
}
$my_data=curl_pair($json_pair_filename); // no errors

echo($my_data); // just a white screen, no data, no nothing.