PHP中global與 GLOBALS 區別

2021-06-07 00:00:32 字數 1149 閱讀 5611

根據官方的解釋是

1.$globals['var']是外部的全域性變數本身。

2.global $var是外部$var的同名引用或者指標。

舉例說明一下:

<?php  

$var1 = 1;  

$var2 = 2;  

function test()  

test();  

echo $var2;  

?>  

<?php $var1 = 1; $var2 = 2; function test() test(); echo $var2; ?>

正常列印結果為1

<?php  

$var1 = 1;  

$var2 = 2;  

function test()  

test();  

echo $var2;  

?>  

<?php $var1 = 1; $var2 = 2; function test() test(); echo $var2; ?>

意外列印結果為2

為什麼會列印結果為2呢?其實就是因為$var1的引用指向了$var2的引用位址。導致實質的值沒有改變。

我們再來看乙個例子吧。

<?php  

$var1 = 1;  

function test()  

test();  

echo

$var1;  

?>  

<?php $var1 = 1; function test() test(); echo $var1; ?>

因為$var1被刪除了,所以什麼東西都沒有列印。

<?php  

$var1 = 1;  

function test()  

test();  

echo

$var1;  

?>  

<?php $var1 = 1; function test() test(); echo $var1; ?>

意外的列印了1。證明刪除的只是別名|引用,起本身的值沒有受到任何的改變。

明白了吧?

也就是說global $var其實就是$var = &$globals['var']。呼叫外部變數的乙個別名而已。

php中global與 GLOBAL的用法及區別

php中global 與 globals 差別 原本覺得global和 globals除了寫法不一樣覺得,其他都一樣,可是在實際利用中發現2者的差別還是很大的 先看下面的例子 php 例子1 function test global function test globals var1 5 var2...

PHP全域性變數global與 GLOBAL詳解

總結 a 1全域性變數相當於有3個變數,函式外部的變數,函式內部的變數,及 global的超全域性變數。global是全域性唯一的,而 var在為全域性變數的別名。b 無論函式內部外部,只要曾經宣告過全域性變數,則 global為全域性的,無需再次宣告 c 在函式內部unset var1 不會影響外...

PHP全域性變數global與 GLOBAL詳解

一 乙個全域性變數相當於有3個變數,函式外部的變數,函式內部的變數,及 global的超全域性變數 global是全域性唯一的,而 var在為全域性變數的別名。二 無論函式內部外部,只要曾經宣告過全域性變數,則 global為全域性的,無需再次宣告 三 在函式內部unset var1 不會影響外部的...