2012-12-13 57 views
0

我是新來的PHP,我不明白爲什麼在函數「func」中使用內部變量「cons」時,編譯器無法識別變量「cons」代碼:在PHP函數中訪問全局變量

$cons = 1; 

function plusCons($num) { 
    return $num + $cons; 
} 

是不可能在函數的作用域內使用全局變量?

+1

聲明它'全球$ cons;'內部函數。請參閱:http://php.net/manual/en/language.variables.scope.php –

+4

函數plusCons($ num)use($ cons){...' – Yoshi

+1

您可以,但它通常應該避免。你應該只是將參數作爲參數傳遞,然後在函數返回時更新它,或者使用一個類。 – deed02392

回答

2

爲了一個PHP函數中訪問全局變量,你需要使用global關鍵字導入變量:

$cons = 1; 

function plusCons($num) { 
    global $cons; 

    return $num + $cons; 
} 
+0

這在很多情況下都不起作用,例如將一個閉包分配給一個類方法中的變量。使用'use(...)'。 – Yoshi

+0

對。幸運的是,這不是OP詢問的。 –

0

這也將爲您的工作:

$cons = 1; 

function plusCons($num ,$cons) { 
    return $num + $cons; 
} 

echo plusCons(2 , $cons); // this will output 3