- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
php全局变量与局部变量
php全局变量与局部变量
php全局变量与局部变量
[ 来源:侠客站长站 | 作者:网络转载 | 时间:2009-02-11 | 我要投稿 | 发表评论 ]
所谓的全局变量与局部变量,php 在这方面也是有相同的处理方式。
在 php 的程序执行时,系统会在内存中保留一块全局变量的区域。实际运用时,可以透过 $globals[变量名称] 将需要的变量取出。在用户自定的函数或程序中,就可以用 $globals 数组取出需要的变量。当然别忘了 php 的变量有分大小写,搞错了大小写可是叫一百年,变量也不会出来。
$globals 数组是 php 程序中比较特殊的变量,不必定义,系统会自动匹配相关的变量在里面。在函数中,也不必管 $globals 数组是否已经做全局定义,就可以直接使用了。
和 $globals 变量类似的还有 $php_errormsg 字符串变量。若 php 的配置文件 (php.ini/php3.ini) 中的 track_errors 选项打开的话,会有全局变量 $php_errormsg 可以看到错误的信息。
在 php 中,全局变量的有效范围 (scope) 仅限于主要程序中,不会影响到函数中同名的变量,也就是全局变量与局部变量互不侵犯。若要变量能通透到函数中,就要用到 $globals 数组或是使用 global 定义。
例如,在自行开发的函数中,要取得目前执行 php 程序页面的文件名,就可以用 $globals[php_self] 取出 $php_self 的值。
?php
// 本程序使用 $globals 数组
function myfunc() {
echo $globals[php_self];
}
myfunc();
?
下面是错误的示范,请勿模仿,上面的才是正确的示范。
?php
// 这是错误的示范
function errfunc() {
echo $php_self;
}
errfunc();
?
但是这个错误的示范要是改成下例就没问题了
?php
// 本程序使用全局定义
function myfunc() {
global $php_self;
echo $php_self;
}
myfunc();
?
在变量前面加上 global 的名称,就是定义该变量为全局变量。用这种方式,就不需使用 $globals 数组,也能让变量进入自行开发的函数中。
接下来先看静态变量的例子
?php
// 静态变量的例子
function myfunc() {
static $mystr;
$mystr.=哈;
echo $mystr.br\n;
}
myfunc(); // 哈
myfunc(); // 哈哈
myfunc(); // 哈哈哈
?
函数在执行时所产生的变量,在函数结束时就消失了,有时因为程序的需要,函数在循环中,当不希望变量在每次执行完函数就消失的话,静态变量 (static variable) 就派上用场了。上例中,使用 $mystr 变量之前,先在变量前面加上 static,即表示变量 $mystr 是静态变量,当每次执行 myfunc() 函数时,$mystr 的值会一直增加,每执行一次就多一个哈字。若将 static 的静态变量定义拿掉,就没办法累加哈字了。
?php
// 不是静态变量的例子 (错误的)
function myfunc() {
$mystr.=哈;
echo $mystr.br\n;
}
myfunc(); // 哈
myfunc(); // 哈
myfunc(); // 哈
?
再看一个比较实际的例子,它是处理表格的颜色,让隔行的颜色不同。
?php
function tdbackcolor() {
static $colorstr;
if ($colorstr==808080) {
$colorstr=c0c0c0;
} else {
$colorstr=808080;
}
return($colorstr);
}
echo table border=1\n;
for ($i=0; $i10; $i++) {
$colorstr=tdbackcolor();
echo trtd bgcolor=.$colorstr.这是第.$i.行/td/tr\n;
}
echo /table;
?
php全局变量与局部变量(2)
[ 来源:侠客站长站 | 作者:网络转载 | 时间:2009-02-11 | 我要投稿 | 发表评论 ]
php 的变量使用技巧上,最令人觉得不可思议的则是变量的变量 (variable variable)。这是充分利用 php 特性玩出的特殊技巧
?php
$a = hello;
$$a = world;
echo $a,
原创力文档


文档评论(0)