0

我有一个文件,其中包括:

    require_once("../../constructor/database.php");

$stuff_inside_include_file->doThis() ; //ACCESSIBLE

function createUser(){
   $stuff_inside_include_file->doThat(); //NOT-ACCESSIBLE (object not found)
} 

function deleteUser(){
. ...

如果我将 require 语句移到函数的范围内,那么它就可以工作。否则,它不会。有更好的解决方案吗?

先感谢您。

4

4 回答 4

1

你可以试试:

function createUser($stuff_inside_include_file){
   $stuff_inside_include_file->doThat();
} 

它应该工作,我想。

于 2012-06-11T05:46:59.453 回答
0

最好的解决方案是不创建全局变量,但这也可以:

require_once("../../constructor/database.php");

$stuff_inside_include_file->doThis() ; //ACCESSIBLE

function createUser(){
    global $stuff_inside_include_file;
    $stuff_inside_include_file->doThat(); //ACCESSIBLE
} 

function deleteUser(){
. ...

但实际上……“放眼全球,立足本地”。

于 2012-06-11T05:45:56.483 回答
0

我相信这是变量不是全局的问题。

例如

$i = 10;

function pooppoop() {

    $i = 11;
    #this only sets the local variable i to 11

}

所以你会想要放一个全局 $i; 在你的功能的顶部。显然将 $i 替换为您无法访问的变量。

于 2012-06-11T05:47:47.443 回答
-1

我看起来像 $stuff_inside_include_file 变量是在全局范围内,所以你应该能够做到这一点:

function createUser(){
   global $stuff_inside_include_file;
   $stuff_inside_include_file->doThat();
}
于 2012-06-11T05:45:46.470 回答