PHP中变量的作用域可以分为:
超全局变量:在一个脚本的任何作用域里都可以被访问,可直接在局部范围里使用,不需要用global声明.
比如$GLOBALS,$_ENV,$_SERVER,$_GET,$_POST,$_FILES,$_SESSION,$_COOKIE等.
全局变量: 声明的变量不在class,function等语言结构内部.如果要在class,function等内部使用全局变量,需要用关键词global或者超全局变量$GLOBALS.
局部变量: 在class,function等结构语句内部声明的变量.
静态变量: 在function中使用关键词static声明的变量,静态变量的值保留直至当前请求的脚本运行结束,比如可以用来保存数据库连接对象.
对于局部变量要重点理解:
局部变量的作用域是函数头到函数尾。
一个php文件,无论有几个<?php ?>
标签,其实都是连贯的。标签之外的语句都被视为echo
。标签也不会影响作用域。
局部变量也称为内部变量,实在函数内部声明的变量,其作用于也仅限于函数内部,离开函数后在使用这种变量是非法的。