包括来自静态类方法的php文件
我有2个php文件。我无法从A的静态方法获取B的全局变量: A.php包括来自静态类方法的php文件,php,class,static,include,Php,Class,Static,Include,我有2个php文件。我无法从A的静态方法获取B的全局变量: A.php class c_A { public static function f_A() { include_once( "B.php" ) ; print f_B() ; } } c_A::f_A( ); // only prints "B : " $gvs = "global variable from B" ; function f_B() { return "B : "
class c_A
{ public static function f_A()
{ include_once( "B.php" ) ;
print f_B() ;
}
}
c_A::f_A( ); // only prints "B : "
$gvs = "global variable from B" ;
function f_B()
{ return "B : " . $GLOBALS[ "gvs" ] ;
}
include_once( "B.php" ) ;
class c_A
{ public static function f_A()
{
print f_B() ;
}
}
c_A::f_A( ); // will prints "B : global variable from B"
B.php
class c_A
{ public static function f_A()
{ include_once( "B.php" ) ;
print f_B() ;
}
}
c_A::f_A( ); // only prints "B : "
$gvs = "global variable from B" ;
function f_B()
{ return "B : " . $GLOBALS[ "gvs" ] ;
}
include_once( "B.php" ) ;
class c_A
{ public static function f_A()
{
print f_B() ;
}
}
c_A::f_A( ); // will prints "B : global variable from B"
$GLOBALS[“gvs”]
为空,因为您在函数内部调用了B.php
。因此,$gvs
变量未声明为全局变量。如果您在A.php
中包含B.php
课外内容,您将得到以下结果:
A.php
class c_A
{ public static function f_A()
{ include_once( "B.php" ) ;
print f_B() ;
}
}
c_A::f_A( ); // only prints "B : "
$gvs = "global variable from B" ;
function f_B()
{ return "B : " . $GLOBALS[ "gvs" ] ;
}
include_once( "B.php" ) ;
class c_A
{ public static function f_A()
{
print f_B() ;
}
}
c_A::f_A( ); // will prints "B : global variable from B"
你怎么“无法”做到这一点?你会犯什么错误?没有错误。。。但我只得到“B:”打印出来。。。应该是“B:来自B的全局变量”您是否尝试启用错误报告<代码>错误报告(E_全部)代码>在两个页面的顶部?它不会被声明为全局变量,因为它是include脚本中的第一行。它仍然在
f_A()
方法的局部变量范围内执行。(这方面有一些重复的问题…)我将其添加到了两者中,但没有显示错误,浏览器的“查看源”中也没有错误。。。