PHP面試常考易錯題之變數作用域解析

PHP面試常考易錯題之變數作用域解析

來自專欄 PHP高級開發

living example one

$A="Hello "; functionprint_A() { $A = "phpmysql !!";global $A; //global 全局變數 函數是獨立的模塊 $A外界定義的echo $A;}echo $A; //output Helloprint_A(); //out pot Hello 在你將$A定義為全局變數的時候,並未修改$A的值

考點:

局部變數和全局變數的作用域,函數外部變數為全局變數(本頁面以及引入頁面),函數內部變數為局部變數

易錯點:

答題者區分不清局部變數和全局變數的概念,導致不能準確寫出函數輸出結果

分析:

1)局部變數只能在函數內部產生作用以及被使用,無論外部怎麼修改都將失效,這樣也就保證了我們在同一個頁

面定義相同名稱的變數時候不會出現異常

2)全局適用於多個函數以及多個頁面都需要用到時可聲明,這樣也就能節省內存空間,但是應用時重複定義被覆

蓋導致異常的問題也要注意

living example two

function test(){ $num = 10; echo $num;}test(); //output 10echo $num; $num = $num+10;echo $num;

分析:

以上代碼會導致一個變數未定義的waring,我們尚且忽略

1)$num是一個局部變數,那麼你在函數內部輸出,並且調用函數方法時候會輸出10,但是無論你在外面怎麼操作

$num這個變數兩者都不是同一個變數,因此也不會產生實質性的效果

推薦閱讀:

絲帶範疇
怎樣上好一節數學課
泰勒級數——小無相功
利用ComplexHeatmap繪製熱圖(一)
Tauber定理·初探

TAG:數學 | PHP | PHP學習 |