2009-11-09 54 views
0

可變範圍我的代碼如下所示的部分:「全局」 在PHP

---- ---- file.php

require_once("mylib.php"); 

function($a,$b) 
{ 
    $r = $_GLOBALS['someGlobal']; 
    echo $r; 
} 

---- MYLIB .PHP ----

$_GLOBALS['someGlobal'] = "Random String"; 

這是有點輕視,但確切的問題,我有我哈沒有找到相關的東西,但沒有直接回答我的問題。

當我撥打function($a,$b)時,沒有任何迴音,即 - $r是「空」,好像什麼也沒有分配給$_GLOBALS['someGlobal'];

此外,我曾嘗試下列要求:

global $someGlobal; 
$someGlobal = "Random String"; 

同樣的事情,沒有任何影響。 另外,在file.php,如果我嘗試global,或只是$someGlobal它仍然無法正常工作。

據我所知,從php.net的文檔中使用全球$someGlobal在mylib.php(並已插入在file.php的頂層),它實際上不會做很多,因爲它已經在據我所知,範圍層次結構的「頂層」。不過,我認爲將其註冊爲全局可能允許從函數內部訪問它,但顯然並非如此。

有人可以解釋爲什麼,並解釋如何解決這個問題?

編輯:我不認爲在file.php如果我用$_GLOBALS['someGlobal'];值應恢復正常,如果它不是一個功能。

+0

哇...史詩故障閱讀我的一部分。 謝謝大家。 – Viashimo 2009-11-09 16:47:23

回答

0

From the docs,沒有在$GLOBALS變量沒有_

也能正常工作對我來說:

$GLOBALS['glob'] = "string"; 

function foob() { 
    echo $GLOBALS['glob']; 
} 

foob(); 
0

$GLOBALS,不$_GLOBALS