作用域,就是应用的范围,变量的作用域就是变量能够使用的范围。 我们在函数的内部定义的变量,叫做本地变量,或者叫局部变量,也就是这个变量的作用域只是在这个函数的内部。在函数以外,我们是访问不了在函数内部定义的变量的。
在函数以外定义的变量叫做全局变量,变量的作用域就是全局作用域。在默认的情况下,在函数的内部,我们也不能访问到全局范围的变量,不过可以在函数内部使用 global 关键词,去声明一下,要在函数的内部使用的全局变量。下面,我们通过几个演示再去理解一下。
先在全局范围内定义一个变量 ... $title 等于 继续革命 ...
$title = '继续革命';
然后再去定义一个函数 .. 叫做 get_title ... 在函数的内部,我们可以试着去返回 $title 这个变量 ...
再去执行这个函数 ... 然后看看能不能输出这个函数返回的值 .. echo get_get_title() ...
function get_title() {
return $title;
}
echo get_title();
保存 ... 你会看到,在屏幕上会显示 Undefined variable :title ... 未定义的变量 title ... 我们在 get_title 里面,并没有定义 $title 这个变量 ... 虽然在全局范围里面有一个 $title 变量,但是默认情况下,在函数的内部不能访问全局变量 ...
不过在函数里面,可以使用一个 global 关键词 ... 去声明一下要使用的全局变量 ...
global $title;
再保存一下 ... 这回 get_title 这个函数就会返回在全局作用域里面的 $title 变量的值了。
局部变量
下面,我们可以在这个函数的内部去定义一个变量 ... $label 等于 专辑名称 ...
然后在函数以外,试试去输出这个叫做 $label 的变量 ... echo $label;
保存 ... 又会显示一个未定义的变量:label ... 因为 $label 变量是在函数内部定义的,所以这个变量的作用域就是一个局部作用域 ... 也就是,我们在全局作用域下面,是不能访问到这个变量的。