1. 程式人生 > >global與$GLOBALS['']的區別及用法

global與$GLOBALS['']的區別及用法

+++ 探討(一)+++++++++++++++++++++++++++++++++++++++

很多人都認為global和$GLOBALS[]只是寫法上面的差別,其實不然。

根據官方的解釋是

  • $GLOBALS['var'] 是外部的全域性變數$var本身。
  • global $var 是外部$var的同名引用或者指標。(錯誤:是個別名引用而已,非指標!!!)

舉例說明一下:

01 <?php
02 $var1 = 1;
03 $var2 = 2;
04 function test() {
05 $GLOBALS['var2'] = &$GLOBALS['var1'];
06 }
07
08 test();
09 echo $var2;
10 ?>

正常列印結果為1

01
<?php
02 $var1 = 1;
03 $var2 = 2;
04

相關推薦

global$GLOBALS['']的區別用法

+++ 探討(一)+++++++++++++++++++++++++++++++++++++++ 很多人都認為global和$GLOBALS[]只是寫法上面的差別,其實不然。 根據官方的解釋是 $GLOBALS['var'] 是外部的全域性變數$var本身。global $var 是

python學習彙總40:名稱空間和作用域local,global,locals(),globals()區別 2018/11/16(推薦)tcy

python名稱空間和作用域及local,global,locals(),globals()區別 2018/11/16   目錄: 1.名稱空間及作用域的基本概念 1.1.模組級變數運用 2.變數的作用域 3.local,global,locals(),globals(

vue1.0 Vue2.0的一些區別 用法

alert 支持 troy body 模板 標記 title ava pla 1.Vue2.0的模板標記外必須使用元素包起來; eg:Vue1.0的寫法 <!DOCTYPE html> <html> <head> <meta

述 SQL 中的 distinct 和 row_number() over() 的區別用法

表示 第一個 字段值 格式 這樣的 操作數 col 例如 from   1 前言    在咱們編寫 SQL 語句操作數據庫中的數據的時候,有可能會遇到一些不太爽的問題,例如對於同一字段擁有相同名稱的記錄,我們只需要顯示一條,但實際上數據庫中可能含有多條擁有相同名稱的記錄,從

JAVA中string.replace()和string.replaceAll()的區別用法

mod btn dsm ont match cep 產生 生成 語法 乍一看,字面上理解好像replace只替換第一個出現的字符(受javascript的影響),replaceall替換所有的字符,其實大不然,只是替換的用途不一樣。 public Strin

JDBC中PreparedStatement接口提供的execute、executeQuery和executeUpdate之間的區別用法

ica cat nvi 一個 execute ear let ace 刪除 JDBC中PreparedStatement接口提供的execute、executeQuery和executeUpdate之間的區別及用法 (2012-08-27 09:36:18) 轉載▼

Python中threading的join和setDaemon的區別用法

退出 mon comment ber .cn 結束 必須 用法 方法 Python多線程編程時經常會用到join()和setDaemon()方法,基本用法如下: join([time]): 等待至線程中止。這阻塞調用線程直至線程的join() 方法被調用中止-正常退出或者

js onclickaddEventListener 區別用法

nbsp scala 一段 onclick 元素 user 不同的 公司 utf-8 addEventListener(建議使用)好比一個監聽容器,這個容器裏面可以裝很多個監聽事件,而且每一個事件都會執行。 onclick 在今天之前我使用這個(onclick)比較多(單純

localStorage、sessionStorage、Cookie的區別用法

code class () 所有 標簽 無法 style col item localStorage html5新增的一個本地存儲API,所謂localStorage就是一個小倉庫的意思,它有5M的大小空間,存儲在瀏覽器中。 localStorage生命周期是永久,這意味著

alloc()、malloc()、calloc()、realloc()區別用法

CA 這一 首地址 動態分配內存 調用函數 空指針 size 指針類型 空間 C語言跟內存申請相關的函數主要有 alloca,calloc,malloc,free,realloc,sbrk等. 函數malloc()和calloc()都可以用來動態分配內存空間,

PO VO DTO BO區別用法

PO: persistant object持久物件 最形象的理解就是一個PO就是資料庫中的一條記錄。 好處是可以把一條記錄作為一個物件處理,可以方便的轉為其它物件。   BO: businessobject業務物件 主要作用是把業務邏輯封裝為一個物件。這個物件可以包括一個或多個其它

查缺補漏——String,StringBuffer,StringBuilder區別用法

最近在看併發及虛擬機器部分,介紹了String是不可變的物件,順便複習了與string相關的類。 一 String是不可變物件,它一定是執行緒安全的,因為當我們呼叫substring(),replace(),concat()這些方法時,都不會影響它原來的值,只會返回一個新構造的字串物件,因此當要

bowtie和bowtie2使用條件區別用法

一、轉錄組還是基因組? map常用的工具有bowtie/bowtie2, BWA,SOAP1/SOAP2等。這個問題又會被分成兩個問題,是基因組測序(DNA-seq)還是轉錄組測序(mRNA-seq)。其中的區別是對於真核生物而言,mRNA序列與DNA序列並不完全相同,在經歷了後剪下之後,成熟的

select\poll\epoll\kqueue\IOCP的區別用法

先來看看linux manual對三者的介紹 1、select select()  and  pselect()  allow  a program to monitor multiple file descriptors, waiting until

e = e || window.event的區別用法

e = e || window.event  在做事件處理時,用於區分IE和其他瀏覽器事件物件。 下面連結為事件物件的參考資料:   http://wenku.baidu.com/view/400a89f4f61fb7360b4c65ca.html <!DOCTYPE H

Mabitis中的#$符號區別用法介紹

一、介紹  mybatis 中使用 Mapper.xml裡面的配置進行 sql 查詢,經常需要動態傳遞引數,例如我們需要根據使用者的姓名來篩選使用者時,sql 如下: ?

ajaxjsonp的區別用法

首先我們應該知道ajax和jsonp可以與後臺通訊,獲取資料和資訊,但是又不用重新整理整個頁面,實現頁面的區域性重新整理。 接下來我們就來看一下ajax和jsonp的區別。 ajax和jsonp的區別: ajax是一種傳送http請求與後臺進行非同步通訊的技術。其原理是例項化xml

js中!和!!的區別用法簡介

js中!的用法是比較靈活的,它除了做邏輯運算常常會用!做型別判斷,可以用!與上物件來求得一個布林值, 1、!可將變數轉換成boolean型別,null、undefined和空字串取反都為false,其餘都為true。 複製程式碼 1 !null=true 2 3

Oracle instrsubstr的區別用法

一、instr函式是一個字串處理函式,它在Oracle/PLSQL中是返回子字串在源字串中的位置。 /*  * 返回子字串在源字串中的位置(字串位置從1開始,而不是從0開始)  * @param string 源字串  * @param substring 子字串

Java中print()\println()\printf()的區別用法

print()\println()\printf()的區別: print將它的引數顯示在命令視窗,並將輸出游標定位在所顯示的最後一個字元之後。 println 將它的引數顯示在命令視窗,並在結尾加上換行符,將輸出游標定位在下一行的開始。 printf是格式化輸出的形