PHP裡函式的引數變數是區域性變數嗎?

時間 2021-06-03 01:51:58

1樓:

是,加global識別符號才是全域性變數,另外,php與js一樣無塊作用域,有函式作用域,這點要注意,比如for迴圈中unset全域性變數不需要加global[$var]。

2樓:eechen

但要注意,引數以引用傳遞(&)進來的話,則該引數變數不會在函式結束時釋放記憶體.

比如物件作為函式引數時預設就是引用傳遞,不需要用&宣告.

<?

phpclass

foofunctionfn(

$foo

)$foo

=new

foo();fn(

$foo

);echo

$foo

->bar."\n

";// 輸出 fn_bar

另外需要注意,PHP在函式中銷毀乙個物件:

<?

phpclass

foofunctionfn(

&$foo

)$foo

=new

foo();fn(

$foo

);// 傳遞引用(函式引數必須用&宣告),然後賦空(null)echo

$foo

->bar."\n

";// Notice: Trying to get property of non-object

指標變數做函式引數,當我們在呼叫函式時,是如何改變main函式的變數值?使變數值改變的。

我來嘗試通俗的解釋一下.看得懂最好,看不懂就太傷心了 我有乙個玻璃匣子,匣子裡放著一些東西.匣子被鎖住了只有我能打得開.現在,我把這個匣子遞給你 main呼叫swap 你透過這個匣子,可以看到裡面的東西,比如說裡面放著錢吧.但是你看得見摸不著.你把匣子還給我以後,我再給別人,錢還是錢.沒變.好.我們...

JS方法內區域性變數和引數同名時作用域的問題?

Dominator008 這個問題要確切回答,http www.ecma international.org ecma 262 6.0 sec functiondeclarationinstantiation 27.If hasParameterExpressions isfalse,then a....

c 函式區域性靜態變數第二次被訪問的時候具體做了些什麼?

Atlantis 別的不知道用g 測試了一下單例標記 雙檢測鎖,只是加乙個bool標記是否初始化的話,如果在建構函式裡加個sleep,還是還是會出問題.include include using namespace std class A A singleon void do something i...