Facebook 致命错误:对非对象调用成员函数api()
我正在运行此代码,并收到以下消息: “致命错误:对中的非对象调用成员函数api()” 它所指的那一行就在我写的Facebook 致命错误:对非对象调用成员函数api(),facebook,facebook-fql,Facebook,Facebook Fql,我正在运行此代码,并收到以下消息: “致命错误:对中的非对象调用成员函数api()” 它所指的那一行就在我写的global$facebook下面。facebook对象是在config.php文件中初始化的,该文件包含在我的Database.php文件中,我已链接到该文件中。我已经研究过这个问题,当你的$facebook在函数外部声明,而你在函数内部使用它而不使它成为全局函数时,它就会出现。正如你们所看到的,我把它做成了全球性的,我甚至试着在不把它做成全球性的情况下这样做——两者都会导致那个错误
global$facebook
下面。facebook对象是在config.php文件中初始化的,该文件包含在我的Database.php文件中,我已链接到该文件中。我已经研究过这个问题,当你的$facebook
在函数外部声明,而你在函数内部使用它而不使它成为全局函数时,它就会出现。正如你们所看到的,我把它做成了全球性的,我甚至试着在不把它做成全球性的情况下这样做——两者都会导致那个错误
有人知道为什么吗
p、 我甚至不明白为什么它需要是全局的,因为如果config.php包含在我的Database.php文件中,并且包含在下面的代码中,那么$facebook对象不在这段代码的范围内吗
<?php
include_once('../../Database.php');
session_start(); // Start session for safety
// Retrieve the user's current shortlist of potential flatmates
$uid = $_SESSION['uid'];
$shortlistRes = getShortlist($uid);
global $link;
$shortlist = null;
while($r = mysqli_fetch_array($shortlistRes)) {
$shortlist[] = $r;
}
var_dump($shortlist);
// Create array of parameters you need
$parameters = array("pic_square");
// Get id and picture of everyone on shortlist
$shortlistString = implode(",",$shortlist);
$fql = "SELECT uid, pic_link FROM user WHERE uid IN ($shortlistString)";
global $facebook;
$shortlistFBInfo = $facebook->api(array(
'method' => 'fql.query',
'query' => $fql
));
print_r($shortlistFBInfo);
// Display Shortlist Page
//include_once('../View/shortlist_v.php');
?>
您的代码中没有任何地方实际实例化了$facebook
变量-随SDK分发的示例代码如下所示:
require_once("facebook.php");
$config = array();
$config[‘appId’] = 'YOUR_APP_ID';
$config[‘secret’] = 'YOUR_APP_SECRET';
$config[‘fileUpload’] = false; // optional
$facebook = new Facebook($config);
嘿,Igy-我提到页面顶部包含一个Database.php文件,其中包含一个config.php文件,用于初始化Facebook对象-所以从技术上讲,它应该在本文的范围内!我对php范围有点生疏,但我认为如果它包含在同一级别的另一个文件中,则不需要将其声明为全局