教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHP比较static global与GLOBALS用法

PHP比较static global与GLOBALS用法

发布时间:2018-04-15   编辑:jiaochengji.com
本文介绍了php编程中,static、global与GLOBALS的用法与区别,通过实例来掌握三者的用法,有需要的朋友参考下。

例子,PHP中static global与GLOBALS用法。
 

复制代码 代码示例:
<?php 
// 比较global、GLOBALS、static 
$k = 0; 
function test1() { 
    global $k; 
    static $i = 0; 
    echo 'i:', ++$i, '<br/>'; 
    echo 'k:', ++$k, '<br/>'; 

test1(); 
test1(); 
echo 'i:', $i, '<br/>'; 
echo 'k:', $k, '<br/>'; 
 
echo '------------------<br/>'; 
 
function test2() { 
    global $k; 
    static $i = 0; 
    echo 'i:', ++$i, '<br/>'; 
    echo 'k:', ++$k, '<br/>'; 

test2(); 
test2(); 
echo 'i:', $i, '<br/>'; 
echo 'k:', $k, '<br/>'; 
 
$m = 0; 
$n = 0; 
function test3() { 
    global $m; 
    echo 'm:', $m++ , '<br/>'; 
    echo 'n:', $GLOBALS['n']++ , '<br/>'; 
    unset($m, $GLOBALS['n']); 

echo '------------------<br/>'; 
test3(); 
 
echo 'm:', $m, '<br/>'; 
echo 'n:', $n, '<br/>'; 
 
echo '------------------<br/>'; 
 
static $x = 0; 
function test4() { 
    echo 'x:', $x++ , '<br/>'; 

 
test4();

结果:
i:1
k:1
i:2
k:2
i:
k:2
------------------
i:1
k:3
i:2
k:4
i:
k:4
------------------
m:0
n:0
m:1
n:
------------------
x:

static 作用域 function class中,相同的function class共用相同的变量
global、GLOBALS 全局作用域
global 会产生一个引用到变量
GLOBALS 直接操作变量
所以unset global变量的时候,全局变量不改变,而GLOBALS直接删除了变量

您可能感兴趣的文章:
PHP比较static global与GLOBALS用法
php global static与$GLOBALS的区别
php中global和$GLOBALS[]用法区别
在javascript中使用php风格的$globals
深入理解php中$GLOBALS与global区别
php中global和static两个关键字详解
PHP 变量的四大作用域
有关php的全局变量global与$GLOBALS[]的区别
php中global static和$GLOBALS使用与区别
PHP中global与$GLOBALS的区别

关键词: 全局变量   
[关闭]
~ ~