включая php файл из метода статического класса - PullRequest
1 голос
/ 24 марта 2012

У меня есть 2 php-файла.Я не могу получить глобальную переменную B из статического метода A:

A.php

class c_A
  { public static function f_A()
      { include_once( "B.php" ) ;
        print f_B() ;
      }
  }
c_A::f_A( ); // only prints "B : "

B.php

$gvs = "global variable from B" ;

function f_B()
  { return "B : " . $GLOBALS[ "gvs" ] ;
  } 

1 Ответ

1 голос
/ 24 марта 2012

$GLOBALS[ "gvs" ] пусто, потому что вы вызываете B.php внутри функции.Таким образом, переменная $gvs не объявляется как глобальная переменная.Если вы включите B.php вне класса в A.php, вы получите результат:

A.php

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"
...