2012-03-23 25 views
1

我有2個PHP文件。我無法從A的靜態方法獲得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 : " 

B.php

$gvs = "global variable from B" ; 

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

你怎麼樣「不能」做的呢?你得到什麼樣的錯誤? – 2012-03-23 21:21:16

+0

沒有錯誤...但我只是得到「B:」打印出來......應該是「B:來自B的全局變量」 – dsdsdsdsd 2012-03-23 21:24:34

+0

您是否嘗試啓用錯誤報告? 'error_reporting(E_ALL);'在兩頁的頂部? – 2012-03-23 21:26:59

回答

1

$GLOBALS[ "gvs" ]是空的,因爲你的呼喚B.php內部功能。所以$gvs變量沒有被聲明爲全局變量。如果包括A.phpB.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"