根據官方的解釋是
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 不會影響外部的...