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

首頁 > 開發 > PHP > 正文

php中變量作用域和超級全局變量介紹

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

一、變量的賦值

變量聲明后就可以給其賦值,有兩種方式:值賦值和引用賦值。 

1、值賦值 

$color = "red" ; 

$sum = 12+"15" ; /* $sum = 27 */

2、若希望兩個變量指向一個值的同一個副本,則需要通過引用賦值.

引用賦值 

所創建的變量與另一個變量引用的內容相同,如果多個變量引用了同一個內容,修改其中任意一個變量,在其余的變量上都將有所反映.

PHP實例代碼如下:

  1. <?php  
  2. $value1 = "hello" ;  
  3. $value2 = &value1 ; /*$value1 and $value2 both equal "hello" .*/  
  4. $value2 = "goodbye" ; /*$value1 and $value2 both equeal "goodbye". */  
  5. ?> 

二、變量的作用域 

php腳本的任何位置都可以聲明變量,但聲明變量的位置會大大影響訪問變量的范圍,這個可訪問的范圍稱為作用域(scope).

php變量的4中作用域:

△ 局部變量 

△ 函數參數 

△ 全局變量 

△ 靜態變量 

1、局部變量 

在函數中聲明的變量認為是局部變量,只能在函數中引用,退出聲明變量的函數時,該變量及相應的值就會撤銷,消除了導致全局訪問的變量被有意或無意修改的可能性.

  1. $x = 4 ;  
  2. function assignx ( ) {  
  3. $x = 0 ;  
  4. print "$x inside function is $x . <br>" ;  
  5. }  
  6. assignx ( ) ;  
  7. print "$x outside of function is $x . <br>" ; 

代碼的執行結果為:

$x inside function is 0 . 

$x outside function is 4 .

2、函數參數 

php和其他編程語言一樣,任何接受參數的函數都必須在函數首部中聲明這些參數,雖然這些參數接受函數外部的值,但退出函數后就無法再訪問這些參數.(按引用傳遞的參數除外)

例如:

  1. function x10 ( $value ) {  
  2. $value = $value * 10 ;  
  3. return $value ;  

函數執行完畢,參數即將撤銷.

3、全局變量 

與局部變量相反,全局變量可以在程序的任何位置訪問,當在函數中改變全局變量時,需要在該函數中將變量顯示地生命為全局變量,只要在函數中的該變量前加上global即可.

例如:

  1. $somevar = 15 ;  
  2. function addit ( ) {  
  3. global $somevar ;  
  4. $somevar ++ ;  
  5. print "somevar is $somevar" ;  
  6. }  
  7. addit ( ) ;  

$somevar 顯示的值應為16,但是,若去掉 global $somevar ; 這行,變量$somevar 將被隱含的設置為0,再加1,最后顯示的值就是1.

聲明全局變量的另一方法是使用php的$global數組,如下:

  1. $somevar = 15 ;  
  2. function addit ( ) {  
  3. $globals[ 'somevar' ]++ ;  
  4. }  
  5. addit ( ) ;  
  6. print "somevar is ". $globals[ 'somevar' ] ;  
  7. //返回值如下: somevar is 16 . 

4、靜態變量 

靜態(static)作用域,普通變量的函數參數在函數結束時會撤銷,但靜態變量在函數退出時不會丟失值,并且再次調用此函數時還能保留這個值,在汴梁明前加上關鍵字 static 就可以聲明一個靜態變量.

static $somevar ; 

考慮一個例子:

  1. function keep_track ( ) {  
  2. static $count = 0 ;  
  3. $count ++ ;  
  4. print $count ;  
  5. print "<br>" ;  
  6. }  
  7. keep_track ( ) ;  
  8. keep_track ( ) ;  
  9. keep_track ( ) ;  
  10. keep_track ( ) ;  

若$count 沒有被指明為靜態(相應的,$count就是一個局部變量),輸出將會是 

因為$count是靜態的,它會在每次執行函數時保留前面的值,輸出如下:

靜態作用域對于遞歸函數很有用,遞歸函數(recursive function)是一個功能強大的編程概念,它是一個可以重復調用自身的函數,直到滿足某個條件為止.

5、 php的超級全局變量 

php提供了很多有用的預定義變量,可以在執行腳本的人和位置訪問,用于提供大量與環境有關的信息,可以通過這些變量獲得關于當前用戶會話、用戶操作系統環境和本地操作環境等詳細信息,php會創建部分變量,而其他許多變量的可用性和值則取決于操作系統和web服務.

輸出所有預定義變量:

  1. foreach ( $_server as $var => $value ) {  
  2. echo "$var => $value <br>" ;  
  3. }  

顯示用戶的ip地址:

print "hi!your ip address is ".$_server[ ' remote_addr' ] ;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 华池县| 湖南省| 宁阳县| 白玉县| 霞浦县| 琼海市| 温泉县| 西林县| 洛宁县| 游戏| 靖江市| 沅江市| 会宁县| 拜泉县| 甘德县| 华坪县| 龙门县| 新绛县| 兰坪| 宜昌市| 敦化市| 乌拉特中旗| 马公市| 聊城市| 霍林郭勒市| 山西省| 萍乡市| 新巴尔虎左旗| 济南市| 青冈县| 师宗县| 嵊州市| 镇赉县| 大化| 内丘县| 揭西县| 科技| 襄汾县| 望谟县| 阿荣旗| 宁津县|