php变量范围介绍
2015-01-24信息快讯网
变量的范围即它定义的上下文背景(也就是它生效的范围)。大部分的 PHP 变量只有一个单独的范围。这个单独的范围跨度同样包含了 include 和 require 引入的文件
例如:<?php $a = 1; include 'b.inc'; ?>
这里变量 $a 将会在包含文件 b.inc 中生效。但是,在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内,此时为局部变量。
PHP 中全局变量在函数中使用时必须申明为global。
在函数中使用global声明的变量即为全局变量,可以在函数外使用。注意:global声明变量时,不能直接对变量赋值,需要先声明后赋值。
在全局范围内,也可以通过$GLOBALS访问全局变量,在函数内不需要使用global关键字来访问全局变量了。$GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。
常量可以不用理会变量的作用域而在任何地方定义和访问;
变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。静态变量仅在第一次调用时进行初始化,声明时可以对其赋值,不能是表达式值。如果在声明中用表达式的结果对其赋值会导致解析错误。
当把一个引用(带上&的变量或对象)赋值给一个静态变量时,引用并不是静态地存储的,第二次调用函数时静态变量其值并没有被记住。同样,当把一个引用(带上&的变量或对象)赋值给global变量时,此变量的变化对函数外不起作用,作用范围只在该函数内。
ThinkPHP模板范围判断输出In标签与Range标签用法详解
ThinkPHP3.1新特性之命名范围的使用
解析link_mysql的php版
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
解析PHP中empty is_null和isset的测试
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
浅析PHP中的UNICODE 编码与解码
使用PHP获取当前url路径的函数以及服务器变量
浅析php变量修饰符static的使用
解析在PHP中使用全局变量的几种方法
解析thinkphp import 文件内容变量失效的问题
数组与类使用PHP的可变变量名需要的注意的问题
PHP中替换换行符的几种方法小结
php模板函数 正则实现代码
php mssql扩展SQL查询中文字段名解决方法
PHP获取文件后缀名的三个函数
php标签云的实现代码
记录PHP错误日志 display_errors与log_errors的区别
PHP超级全局变量数组小结
PHP基础陷阱题(变量赋值)
PHP中全局变量global和$GLOBALS[]的区别分析
PHP中使用unset销毁变量并内存释放问题
php中根据变量的类型 选择echo或dump
PHP的范围解析操作符(::)的含义分析说明
php判断输入不超过mysql的varchar字段的长度范围