這次我們不再學(xué)習(xí)PHP中的定界符,本篇文章開(kāi)始介紹超級(jí)全局變量,有需要的小伙伴可以參考參考,希望大家越來(lái)越熟悉php啦。
不過(guò)在介紹$GLOBALS
之前讓我們先看看什么叫超級(jí)全局變量
。
全局變量是編程術(shù)語(yǔ)之一,它來(lái)源于變量的劃分。變量分為局部變量和全局變量,局部變量也可以稱為內(nèi)部變量。由對(duì)象或函數(shù)創(chuàng)建的變量通常是局部變量,只能在內(nèi)部引用,而不能由其他對(duì)象或函數(shù)引用。
全局變量可以由對(duì)象函數(shù)或此程序中的任何位置創(chuàng)建。此程序的所有對(duì)象或函數(shù)都可以引用全局變量。當(dāng)一個(gè)局部變量被其他對(duì)象引用時(shí),它將是一個(gè)空值。全局變量不會(huì)發(fā)生這種情況。
全局變量是在函數(shù)外部定義的變量。不能直接在函數(shù)中使用。因?yàn)樗淖饔糜虿粫?huì)進(jìn)入函數(shù)內(nèi)部。而PHP預(yù)定義的超級(jí)全局變量,在腳本的所有范圍內(nèi)都可用??梢栽诤瘮?shù)和類中使用它,而無(wú)需特殊說(shuō)明。
知道超級(jí)全局變量是什么之后,我們開(kāi)始正題,去看看$GLOBALS。
首先看看一個(gè)小例子。
?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
結(jié)果是
100
我們觀察一下例子,這個(gè)z的結(jié)果就是x+y,但是他沒(méi)有想像平常的四則運(yùn)算那么寫,而是“$GLOBALS['x'] + $GLOBALS['y']
”,這代表什么意思呢?
其實(shí)$GLOBALS是包含所有變量的全局組合數(shù)組,變量的名稱就是數(shù)組的鍵,并且我們可以在PHP腳本的所有范圍內(nèi)訪問(wèn)它。只要是出現(xiàn)過(guò)的全局變量,就可以通過(guò)$GLOBALS這個(gè)數(shù)組取得。
PHP生命周期中,定義在函數(shù)體外部的所謂全局變量,函數(shù)內(nèi)部是不能直接獲得的。
global和$GLOBALS的區(qū)別在于:
global在函數(shù)中生成一個(gè)別名變量,該變量指向函數(shù)的外部變量,而不是函數(shù)的實(shí)際外部變量。
$GLOBALS[]調(diào)用是一個(gè)外部變量,函數(shù)的內(nèi)部和外部總是一致的。
對(duì)于類中的成員變量,必須以$this->
而不是$GLOBALS的方式訪問(wèn)類中的函數(shù):
global用于定義全局變量,但此全局變量不應(yīng)用于整個(gè)網(wǎng)站,而是應(yīng)用于當(dāng)前頁(yè)面,包括include或require的所有文件。
就說(shuō)到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦。→ →php視頻教程