0

我有这个返回 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,就好像我在那个函数中一样并获取每个给定的数据,有没有办法?

也许听起来有点“太多”:)

4

1 回答 1

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;
    }
}

然后,当您想使用它时,只需说(确保您 include_once 实现 getMyFbEvents 的文件,如果它位于不同的 php 文件中。)

$events = getMyFbEvents();
forearch($events as $event){
    echo $event->description;
}

附带说明一下,使用global关键字被认为是不好的做法。更简洁的实现只需将 $facebook 变量作为参数传递给函数

function getMyFbEvents($facebook) {
    try {
    //..... the rest of your function

然后打电话

$var = getMyFbEvents($facebook);
于 2013-06-12T20:29:39.053 回答