要求一次超出范围内部功能

时间:2012-11-22 01:41:59

标签: php

我的bootstrap.php中包含了类,并且在包含的类上实例化了变量,当我包含bootstrap.php时,它给了我一个非对象的成员函数调用

bootstrap.php中

require_once "config/constants.php";
require_once "libraries/Dropbox/DropboxClient.php";

$dropbox = new DropboxClient(array(
'app_key' => DROPBOX_CONSUMER_KEY, 
'app_secret' => DROPBOX_CONSUMER_SECRET,
'app_full_access' => true,
),'en');

的index.php

require_once "bootstrap.php";

dropbox_file_tree();

function dropbox_file_tree()
{
     if(!empty($access_token)) {

     $dropbox->SetAccessToken($access_token);

     }

    $files = $dropbox->GetFiles("",true); 

    print_r($files);
}

2 个答案:

答案 0 :(得分:2)

将dropbox对象传递给函数

dropbox_file_tree($dropbox);

function dropbox_file_tree($dropbox)
{
    if(!empty($access_token)) {
        $dropbox->SetAccessToken($access_token);
    }

    $files = $dropbox->GetFiles("",true); 

    print_r($files);
}

答案 1 :(得分:1)

它与include无关,它是scope issue,函数只能看到局部变量。

您必须使用global关键字或$GLOBALS超全局或将其作为参数传递给函数。