php中变量作用域和超级全局变量介绍
发布:smiling 来源: PHP粉丝网 添加日期:2014-05-23 14:22:19 浏览: 评论:0
一、变量的赋值
变量声明后就可以给其赋值,有两种方式:值赋值和引用赋值。
1、值赋值
$color = "red" ;
$sum = 12+"15" ; /* $sum = 27 */
2、若希望两个变量指向一个值的同一个副本,则需要通过引用赋值.
引用赋值
所创建的变量与另一个变量引用的内容相同,如果多个变量引用了同一个内容,修改其中任意一个变量,在其余的变量上都将有所反映.
PHP实例代码如下:
- <?php
- $value1 = "hello" ;
- $value2 = &value1 ; /*$value1 and $value2 both equal "hello" .*/
- $value2 = "goodbye" ; /*$value1 and $value2 both equeal "goodbye". */
- ?>
二、变量的作用域
php脚本的任何位置都可以声明变量,但声明变量的位置会大大影响访问变量的范围,这个可访问的范围称为作用域(scope).
php变量的4中作用域:
△ 局部变量
△ 函数参数
△ 全局变量
△ 静态变量
1、局部变量
在函数中声明的变量认为是局部变量,只能在函数中引用,退出声明变量的函数时,该变量及相应的值就会撤销,消除了导致全局访问的变量被有意或无意修改的可能性.
- $x = 4 ;
- function assignx ( ) {
- $x = 0 ;
- print "$x inside function is $x . <br>" ;
- }
- assignx ( ) ;
- print "$x outside of function is $x . <br>" ;
代码的执行结果为:
$x inside function is 0 .
$x outside function is 4 .
2、函数参数
php和其他编程语言一样,任何接受参数的函数都必须在函数首部中声明这些参数,虽然这些参数接受函数外部的值,但退出函数后就无法再访问这些参数.(按引用传递的参数除外)
例如:
- function x10 ( $value ) {
- $value = $value * 10 ;
- return $value ;
- }
函数执行完毕,参数即将撤销.
3、全局变量
与局部变量相反,全局变量可以在程序的任何位置访问,当在函数中改变全局变量时,需要在该函数中将变量显示地生命为全局变量,只要在函数中的该变量前加上global即可.
例如:
- $somevar = 15 ;
- function addit ( ) {
- global $somevar ;
- $somevar ++ ;
- print "somevar is $somevar" ;
- }
- addit ( ) ;
$somevar 显示的值应为16,但是,若去掉 global $somevar ; 这行,变量$somevar 将被隐含的设置为0,再加1,最后显示的值就是1.
声明全局变量的另一方法是使用php的$global数组,如下:
- $somevar = 15 ;
- function addit ( ) {
- $globals[ 'somevar' ]++ ;
- }
- addit ( ) ;
- print "somevar is ". $globals[ 'somevar' ] ;
- //返回值如下: somevar is 16 .
4、静态变量
静态(static)作用域,普通变量的函数参数在函数结束时会撤销,但静态变量在函数退出时不会丢失值,并且再次调用此函数时还能保留这个值,在汴梁明前加上关键字 static 就可以声明一个静态变量.
static $somevar ;
考虑一个例子:
- function keep_track ( ) {
- static $count = 0 ;
- $count ++ ;
- print $count ;
- print "<br>" ;
- }
- keep_track ( ) ;
- keep_track ( ) ;
- keep_track ( ) ;
- keep_track ( ) ;
若$count 没有被指明为静态(相应的,$count就是一个局部变量),输出将会是
1
1
1
1
因为$count是静态的,它会在每次执行函数时保留前面的值,输出如下:
1
2
3
4
静态作用域对于递归函数很有用,递归函数(recursive function)是一个功能强大的编程概念,它是一个可以重复调用自身的函数,直到满足某个条件为止.
5、 php的超级全局变量
php提供了很多有用的预定义变量,可以在执行脚本的人和位置访问,用于提供大量与环境有关的信息,可以通过这些变量获得关于当前用户会话、用户操作系统环境和本地操作环境等详细信息,php会创建部分变量,而其他许多变量的可用性和值则取决于操作系统和web服务.
输出所有预定义变量:
- foreach ( $_server as $var => $value ) {
- echo "$var => $value <br>" ;
- }
显示用户的ip地址:
print "hi!your ip address is ".$_server[ ' remote_addr' ] ;
Tags: php 变量 全局 作用
相关文章
- ·PHP中通过Web 执行C/C++应用程序(2013-11-13)
- ·用PHP实现Ftp用户的在线管理(2013-11-13)
- ·用PHP自动把纯文本转换成Web页面(2013-11-13)
- ·用实例分析PHP5异常处理(2013-11-13)
- ·php5的simplexml解析错误(2013-11-13)
- ·PHP后门的隐藏技巧测试报告(2013-11-13)
- ·PHP缓存技术详谈(2013-11-27)
- ·利用PHP自定义错误处理器处理出错信息(2013-11-27)
- ·PHP作wap开发时遇到的问题(2013-11-27)
- ·php编写大型网站问题集(2013-11-27)
- ·php测试性能代码(2013-11-28)
- ·php 安全register globals设置为TRUE的危害(2013-11-28)
- ·XSLTProcessor 中 registerPHPFunctions 后无法调用 php 函数(2013-11-30)
- ·PHP中常用三种缓存技术(2013-11-30)
- ·新浪微博PHP版SDK的导致20007错误(2013-12-03)
- ·linux中phpMyAdmin错误提示Wrong permissions on configuration file, should no(2013-12-04)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)