我有一个文件,我包括说:
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语句移动到函数的范围内,那么它可以工作。否则,它没有。有更好的解决方案吗?
提前谢谢。
答案 0 :(得分:1)
您可以尝试:
function createUser($stuff_inside_include_file){
$stuff_inside_include_file->doThat();
}
它应该有用,我想。
答案 1 :(得分: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(){
. ...
但实际上......“全球化思考,在当地范围内行动”。
答案 2 :(得分:0)
我认为这是变量不是全局的问题。
e.g。
$i = 10;
function pooppoop() {
$i = 11;
#this only sets the local variable i to 11
}
所以你想要一个全球$ i;在你的功能的顶部。显然用您访问时遇到的变量替换$ i。
答案 3 :(得分:-1)
我看起来$ stuff_inside_include_file变量在全局范围内,所以你应该能够这样做:
function createUser(){
global $stuff_inside_include_file;
$stuff_inside_include_file->doThat();
}