我在名为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.
答案 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.