Question: According to the [Facebook docs](https://developers.facebook.com/docs/technical-guides/opengraph/publishing-with-app-token/), using `App_access_token` is as simple as:

```
$appid = 'xxx';
$secret = 'yyyyyyyyy';
$facebook = new Facebook(array(
  'appId'  => $appid,
  'secret' => $secret,
  'cookie' => true,
));

$session = $facebook->getUser()>0;
if($session){
  $access_token = 'access_token='.$facebook->getAccessToken();
  $app_access_token = file_get_contents("https://graph.facebook.com/oauth/access_token?client_id=$appid&client_secret=$secret&grant_type=client_credentials");
}

```

My problem is that `$access_token` is fine **but** `$app_access_token` **always returns false**, what am I doing wrong?

-EDIT-

If I open the `app_access_token` URL in my browser I can see the access token! It seems to fail the file\_get\_contents... ?

Answer: 
When a pointer to a function is taken, the compiler will generate an out-of-line body for the function. It is still possible to inline the function at other call sites.

Note that a function marked `inline` must have a definition available in all TUs which refer to it, and these definitions must be identical. Which means it's perfectly safe to inline the function at some call sites and keep it out-of-line at others.
There's no reason that using a function pointer should prevent inlining. Inlining is done on a case-by-case basis and can exist alongside a usual function body. So a function can be inlined in one place, and called in another.

The compiler will, therefore, inline where it can and still produce a callable function for your function pointer.