国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php 全局變量與靜態變量分析詳解

2024-05-04 21:58:23
字體:
來源:轉載
供稿:網友

靜態變量 

在函數內部 static $a = 0; 

注意:聲明中用表達式的結果對其賦值會導致解析錯誤如static $a =3+3;(error) 

靜態變量僅在局部函數域中存在(函數內部),函數執行完之后,變量值不會丟失,可用于遞歸調用.

在php中的變量范圍里,有一個非常重要的變量—php靜態變量static,在接下來的這篇文章中,我們將會以具體的代碼示例為大家詳細介紹有關php靜態變量static的主要用法,希望對大家有所幫助.

看看下面的例子,演示需要php靜態變量static的例子,代碼如下:

<?php function test(){ $w3sky = 0; echo $w3sky; $w3sky++; } ?>

本函數沒什么用處,因為每次調用時都會將 $w3sky 的值設為 0 并輸出 "0",將變量加一的 $w3sky++ 沒有作用,因為一旦退出本函數則變量 $w3sky 就不存在了,要寫一個不會丟失本次計數值的計數函數,要將變量 $w3sky 定義為靜態的.

例子,使用php靜態變量static的例子,代碼如下:

<?php function test(){ static $w3sky = 0; echo $w3sky; $w3sky++; } ?>

現在,每次調用 test() 函數都會輸出 $w3sky 的值并加一.

靜態變量也提供了一種處理遞歸函數的方法,遞歸函數是一種調用自己的函數,寫遞歸函數時要小心,因為可能會無窮遞歸下去,必須確保有充分的方法來中止遞歸,一下這個簡單的函數遞歸計數到 10,使用靜態變量 $count 來判斷何時停止,代碼如下:

  1. <?php 
  2. function zdy () 
  3.      static $message = 0;       //初始化一個靜態變量 
  4.      $message+=1;               //靜態變量加1 
  5.      echo $message." ";         //輸出靜態變量   
  6.      } 
  7. function zdy1()                 
  8.      $message = 0;    //聲明函數內部變量 
  9.    $message += 1;    //局部變量加1 
  10.      echo $message." ";   //輸出局部變量 
  11.      } 
  12. for($i=0;$i<10;$i++)            //輸出1到10 
  13.   zdy(); 
  14. echo "<p>"
  15. for($i=0;$i<10;$i++)   //輸出10個1 
  16.   zdy1(); 
  17. echo "<br>"
  18. ?> 
  19. //輸出的是: 
  20. //1 2 3 4 5 6 7 8 9 10 
  21. //1 1 1 1 1 1 1 1 1 1 

全局變量

在函數體內定義的global變量,函數體外可以使用,在函數體外定義的global變量不能在函數體內使用,在全局范圍內訪問變量可以用特殊的 php 自定義 $globals 數組.

如:$globals["b"] = $globals["a"] + $globals["b"]; 

在一個函數域內用 global 語句導入的一個真正的全局變量實際上是建立了一個到全局變量的引用.

global $obj; 注:對于變量的 static 和 global 定義是以 應用 的方式實現的.

給變量賦值:傳地址賦值,簡單引用:

$bar = &$foo; //加&符號到將要賦值的變量前.

改動新的變量將影響到原始變量,這種賦值操作更加快速,注意:只有命名變量才可以傳地址賦值,注意:如果  $bar = &$a; $bar = &$foo; 改變$bar的值只能改變變量foo的值,而不改變a的值,引用改變了,代碼如下:

  1. <?php 
  2.  
  3. $my_var = 'hello world'
  4.  
  5. test_global(); 
  6.  
  7. function test_global() { 
  8.  
  9.     // now in local scope  
  10.      
  11.     // the $my_var variable doesn't exist  
  12.      
  13.     // produces error: "undefined variable: my_var"  
  14.      
  15.     echo $my_var;  
  16.      
  17.     // now let's important the variable  
  18.      
  19.     global $my_var;  
  20.      
  21.     // works:  
  22.      
  23.     echo $my_var;  
  24.      
  25.  
  26. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德惠市| 团风县| 永登县| 普安县| 大竹县| 太和县| 弥勒县| 页游| 瑞昌市| 大冶市| 平原县| 光山县| 泰安市| 榆中县| 英德市| 全南县| 涞源县| 边坝县| 青川县| 敦化市| 镇沅| 万载县| 保山市| 东海县| 林芝县| 和平区| 泗阳县| 来宾市| 白沙| 盖州市| 锡林郭勒盟| 烟台市| 中牟县| 绿春县| 峨山| 津市市| 高雄县| 青神县| 花莲市| 灵宝市| 沐川县|