2015-08-29 57 views
0

我正在一個名爲curl_pair($ json_pair_filename)的PHP函數中使用JSON字符串。 var_dump正確顯示了函數中的數據,因此數據存在於函數中,但我無法訪問PHP函數之外的JSON字符串。我應該改變什麼?無法訪問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. 

回答

1

我認爲你需要捕獲你的函數的輸出,或者在你的echo中嵌套函數調用。我不是PHP開發人員,但是在大多數編程語言中,在函數內部聲明的變量對函數來說是私有的,所以$ my_data不存在於外部。但是你從你的功能返回它,所以

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

應該工作。

+0

謝謝Balrog30你的代碼第一次工作。 – 1888software

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. 
+0

謝謝你魯賓你是對的,這是一個可變範圍的問題。欣賞迴應。 – 1888software