包括来自静态类方法的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 : "

我有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 : " . $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()
方法的局部变量范围内执行。(这方面有一些重复的问题…)我将其添加到了两者中,但没有显示错误,浏览器的“查看源”中也没有错误。。。