我有这个函数返回一个json对象:
function getMyFbEvents() {
global $facebook;
try {
$fb_events = $facebook->api('/me/events/');
foreach ($fb_events["data"] as $fb_event_data) {
$event_info = json_decode(file_get_contents('https://graph.facebook.com/' . $fb_event_data['id'] . '/?access_token=' . $facebook->getAccessToken()));
return $event_info;
}
} catch (FacebookApiException $e) {
error_log($e);
$fb_events = null;
return null;
}
}
现在,如果我想通过调用相关函数从脚本的另一个页面调用该对象,我该怎么办?
我的意思是,如果我想现在循环$event_info
,好像我在该函数内部并获取每个给定的数据,是否有办法?
也许听起来有点“太多”了:))
答案 0 :(得分:1)
首先不是从循环内返回,而是需要累积所有值然后返回
function getMyFbEvents() {
global $facebook;
try {
$fb_events = $facebook->api('/me/events/');
$eventDetails = array();
foreach ($fb_events["data"] as $fb_event_data) {
$event_info = json_decode(file_get_contents('https://graph.facebook.com/' . $fb_event_data['id'] . '/?access_token=' . $facebook->getAccessToken()));
$eventDetails[] = $event_info;
}
return $eventDetails;
} catch (FacebookApiException $e) {
error_log($e);
$fb_events = null;
return null;
}
}
然后当你想要使用它时(如果它位于不同的php文件中,请确保include_once实现getMyFbEvents的文件。)
$events = getMyFbEvents();
forearch($events as $event){
echo $event->description;
}
在旁注上使用global
关键字被视为不良做法。更简洁的实现只会将$ facebook变量作为参数传递给函数
function getMyFbEvents($facebook) {
try {
//..... the rest of your function
然后打电话
$var = getMyFbEvents($facebook);