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

次に、それを使用したいときに言うだけです(別のphpファイルにある場合は、getMyFbEventsを実装するファイルを必ずinclude_onceしてください。)

$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 に答える