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

首頁 > 開發 > PHP > 正文

深入理解php中$GLOBALS與global區別

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

php中有一個不為很多人所用的超全局變量$GLOBALS,合理使用這個變量能使工作變得更加有效率,本篇文章主要分析一下這個超全局變量的用法以及$GLOBALS和global的區別.

$GLOBALS定義:引用全局作用域中可用的全部變量(一個包含了全部變量的全局組合數組,變量的名字就是數組的鍵),與所有其他超全局變量不同,$GLOBALS在PHP代碼中任何地方總是可用的,自己可以通過打印$GLOBALS這個變量的結果就知道了.

global與$GLOBALS['']區別

$GLOBALS:$GLOBALS — 引用全局作用域中可用的全部變量

說明:一個包含了全部變量的全局組合數組,變量的名字就是數組的鍵.

在PHP生命周期中,定義在函數體外部的所謂全局變量,函數內部是不能直接獲得的,如果要在函數體內訪問外部定義的全局變量,可以通過global聲明或者直接使用$GLOBALS來進行訪問.例如:

  1. <?php 
  2. $var1='m.survivalescaperooms.com'
  3. $var2='www.google.cn'
  4. test(); 
  5. function test(){ 
  6.     $var1='taobao'
  7.     echo $var1,'<br />'
  8.  global $var1
  9.  echo $var1,'<br />'
  10.     echo $GLOBALS['var2']; 
  11. //結果將打印為: 
  12. //taobao 
  13. //m.survivalescaperooms.com 
  14. //www.google.cn 

下面主要說明一下global和$GLOBALS的區別:

$GLOBALS['var']是外部的全局變量本身,而global $var是外部$var的同名引用或者指針,也就是說global在函數產生一個指向函數外部變量的別名變量,而不是真正的函數外部變量,而$GLOBALS[]確確實實調用的是外部的變量,函數內外會始終保持一致.

下面通過例子說明一下:

  1. $var1=1;
  2. $var2=2;
  3. function test(){ 
  4.  
  5.     $GLOBALS['var2']=&$GLOBALS['var1'];
  6. }
  7. test();
  8. echo $var2
  9. //打印結果為1 
  10. $var1=1;
  11. $var2=2;
  12. function test(){
  13.     global $var1,$var2
  14.  
  15.     $var2=&$var1;
  16. }
  17. test();
  18. echo $var2

打印結果為2,為什么會打印結果為2呢?其實就是因為$var1的引用指向了$var2的引用地址,導致實質的值沒有改變,我們再來看一個例子吧.

  1. $var1=1; 
  2.  
  3. function test(){ 
  4.  
  5.     unset($GLOBALS['var1']); 
  6.  
  7. }
  8. test();
  9. echo $var1;
  10. //因為$var1被刪除了,所以什么東西都沒有打印。 
  11. $var1=1; 
  12.  
  13. function test(){
  14.     global $var1;
  15.     unset($var1);
  16.  
  17. test(); 
  18.  
  19. echo $var1

打印結果為1,證明刪除的只是別名|引用,起本身的值沒有受到任何的改變,也就是說global $var其實就是$var=&$GLOBALS['var'],調用外部變量的一個別名而已.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤阳县| 吕梁市| 宜都市| 隆尧县| 宜黄县| 镇安县| 密山市| 巴里| 永兴县| 苏尼特左旗| 芜湖县| 邵阳县| 廉江市| 囊谦县| 梁河县| 通州市| 北京市| 株洲市| 嵊州市| 互助| 政和县| 宣化县| 招远市| 平罗县| 盐山县| 额尔古纳市| 澄迈县| 河东区| 交口县| 五台县| 永城市| 罗源县| 仙居县| 杭锦旗| 禄丰县| 磐石市| 南平市| 寻乌县| 兴宁市| 色达县| 甘谷县|