如果在函数内部使用php curl返回空白数据

时间:2016-05-11 19:15:23

标签: php wordpress curl

我是php的新手。我试图编写一个调用api并返回JSON响应的简单插件。

当我在函数外部编写相同的代码时,我得到一个JSON响应。但问题是当我使用下面的函数时,它不会返回任何值..页面似乎空白

这是我的功能

function getDOTD(){
try{        
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $baseUrl."offers/v1/dotd/json");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Fk-Affiliate-Id:'.get_option('affiliate_id'),'Fk-Affiliate-Token:'.get_option('affiliate_token')));       
    $result = curl_exec($curl);
    curl_close($curl);
    print($result);

} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n"; abort;
}
}

我也试过使用return而不是print(),但那也没有用。 这就是我如何称呼我的功能 -

print(getDOTD());

任何帮助表示感谢... TIA:)

1 个答案:

答案 0 :(得分:1)

您需要了解变量范围的工作原理。

来自PHP文档

<?php
$a = 1; /* global scope */
function test(){
    echo 'local variable: ' . $a; /* reference to local scope variable // NULL */
}
test();
?>

为了能够访问全局范围,您需要在函数中使用global关键字

<?php
$a = 'Hello World'; /* global scope */
function test(){
    global $a;
    echo 'global variable: ' . $a; /* reference to global scope variable // Hello World */
}
test();
?>

有关variables scope

的更多信息