我是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:)
答案 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();
?>
的更多信息