教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php中global和static两个关键字详解

php中global和static两个关键字详解

发布时间:2017-10-25   编辑:jiaochengji.com
教程集为您提供php中global和static两个关键字详解等资源,欢迎您收藏本站,我们将为您提供最新的php中global和static两个关键字详解资源

1.global在整个页面起作用。
2.static只在function和class内起作用。
global和$GLOBALS使用基本相同,但在实际开发中大不相同。
global在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量,一但改变了别名变量的指向地址,就会发生一些意料不到情况,例如例子1.
$GLOBALS[]确确实实调用是外部的变量,函数内外会始终保持一致!

实例

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy7733')"><textarea id="copy7733" rows="10" cols="40" style="display: none;"></textarea></td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy7733>

<?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:

global关键字如果用在function内部,则说明这个function内用的这个变量是全局的,全局变量就是在整个页面里都能起作用
static就是表示静态。所谓的静态,其实是在function或者class内部而言的。function中static的变量,在funciton执行完之后,不会消失,可以在下次执行的时候继续使用

您可能感兴趣的文章:
php中global和static两个关键字详解
php global static与$GLOBALS的区别
php定义变量几种
PHP 变量的四大作用域
详解PHP的self关键字
PHP保留类及特殊类
谈谈PHP中的global全局变量
PHP中的global关键字用法
php global变量无效问题详解
php定义变量的方法是什么

[关闭]
~ ~