其中區域性變數也可以分為兩部分:靜態變數和動態變數。
首先,我們來理解一下什麼是動態變數?先看下面一段** :
這樣的一段**列印出的結果
顯示結果,我們沒有定義變數a,而我們在函式內部明明定義了變數a。
這裡我說明一下,定義的變數只能在函式所包含,只能在函式體內部才能識別進行使用這就是區域性變數;
那麼什麼是動態呢,動態是說 該函式只有在函式中才會生效,而遇到函式結尾的大括號,那麼這個變數就會被抹殺掉;
下面我們再來說明一下什麼是區域性靜態變數;
宣告靜態變數:static;
首先,我們來看下面一段**
結果顯示:
$b 自增+1,輸出 ,列印結果為4; 看起來和我們平時所用函式沒什麼區別,如何體現我們的static呢;
再看下面
我們多進行一次呼叫,正常來看,應該輸出兩次4,結果為44;
然而我們的顯示結果
這個就是我們的static的作用,再次走到static $b = 3時,它會先查詢static後面的變數存不存在,是否已經宣告過了或者賦值過了。
static的作用:在函式結束時,使該變數不會被釋放掉,而去儲存在我們記憶體的乙個角落,等待我們的再次使用;所以第一次的時候我們進行執行時,會正常的看到4,但是第二次因為是乙個靜態的變數,執行會發現$b已經有值,它會找到這個已有的值,不讀取後面,直接進行下一步操作,進行自增,所以4變成了5;
當然,雖然static擁有讓變數儲存的功能,但是,歸根結底,它還是乙個區域性變數,一樣不能在函式外部進行使用;
這裡區域性變數簡單的介紹完了,下面我們說一下全域性變數;
首先看下面一段**
我們在函式內部使用了外部的變數$a和$b,而結果會告訴我們:
並不認識$a和$b是誰,這個時候如果我們想要使用,那麼就需要使用乙個關鍵字global。
這樣就會告訴我們的函式,這變數在函式外面已經定義好了,列印結果也就會變成:
而這個時候我們進行下面的一段操作:
我們在函式內部進行重新賦值,再列印,結果會顯示
原因是因為,在global的宣告之後,我們內部的$a同樣代表的外部的$a,所以修改時,修改的也是外面的$a,這也就是我們的全域性變數;
axure中的變數及函式
axure的變數設定是為了完成一些邏輯上處理,例如從26個字母中隨機取出四個字母作為驗證碼 a.用隨機數定位數字,0 26中隨機找到乙個數字 b.根據0 26個位置找出相應的字母 c.4個一組合就可以了。這個是驗證碼的主頁面 涉及到區域性變數和一些axure中基本函式 區域性變數在交換事件裡面 其中...
Shell中的函式與變數
方法1 函式名 方法2 function 函式名 bin bash function fun1 fun1 呼叫函式 root server cat function.sh bin bash function fun1 count 1 while count le 5 do fun1 count co...
函式中變數的作用域
今天用函式的時候遇到了乙個問題,後來總結了下 函式中若對變數進行了初始化,則該變數為區域性變數 若沒有初始化而直接對該變數操作,則該變數為全域性變數。一般這種情況出現在列表和字典的使用中。如 a 1 b 1 list dict def ch1 b a 1 def ch3 dict x 1 ch1 c...