2014-01-25 110 views
-2
$var = "Value 1"; 

function setVar() { 
    global $var; 
    $var = "Value 2"; 
} 

function test($someVar) { 
    echo $someVar; 
} 

test($var); 

我希望test(setVar())的輸出爲「Value 2」,但不返回setVar()內的$ var。這可能嗎?PHP功能範圍內的變量範圍

+0

'setVar'不會返回任何東西,所以您沒有向'test'函數傳遞任何東西。如果你想在'test'函數中打印'$ var',爲什麼不打印它而不是'$ someVar'? –

+0

如果'setVar'沒有返回任何東西,那麼'test'有什麼關係? – deceze

+0

好吧,那麼我怎麼寫它,所以setVar不會返回$ var?事情是,在我的'正確的'代碼(這太複雜了,放在這裏)setVar()返回其他的東西,我只需要在我的setVar函數之外可用的$ var的值,所以我可以將它作爲參數傳遞來測試()。對不起,我很愚蠢,但我一直都在這一天:( –

回答

0

請勿使用global從不使用global。改爲使用參考:

$var = "Value 1"; 

function setVar(&$x) 
{ 
    $x = "Value 2"; 
} 

function test($y) 
{ 
    echo $y; 
} 

setVar($var); 

test($var);