對不起,我是一個初學者,我不能確定這是一個多好的問題,也許這聽起來對你們中的一些人來說是完全明顯的。PHP中全局變量和函數參數之間的優缺點?
if 我們用這兩個下面是一樣哪個更好?
function doSomething ($var1,$var2,..){
...
}
OR
function doSomething(){
global $var1,$var2,..;
...
}
我們使用我的意思是,我知道的是,在第二個方案中,我們也可以改變全局變量的價值。但是如果我們不需要這樣做,那麼這是寫這個函數的更好方法呢?傳遞變量的內存少於宣佈全局函數嗎?
除了以下答案中未使用「全局」的原因之外,還應考慮代碼的可重用性。例如,如果您有一個實用程序文件的功能,那麼在包含該文件的任何腳本中,您必須確保您的變量命名與這些函數中的全局變量相匹配。這可能會產生問題,特別是對於複雜的腳本。或者,如果您想通過「插入」已有函數來重構腳本,則需要檢查腳本的所有代碼,甚至是與該函數無關的代碼,以確保不存在命名衝突。 – GZipp 2010-02-07 08:59:42
我想補充一點,你也可以考慮在你的函數之外添加全局變量聲明,但這仍然是不好的做法,因爲別人可能不知道他們是否導入你的代碼。他們可能不知道他們正在導入該全局變量並創建具有相同名稱的另一個變量,從而覆蓋原始變量。 – imagineerThat 2013-05-31 23:51:36