PHP变量作用域
2016-10-15 17:15:23
•
阅读
打赏
PHP 中的每个变量都有一个针对它的作用域,它是指可以在其中访问变量(从而访问它的值)的一个领域
局部变量
在函数内部声明的变量就是局部变量,在一个函数内使用的变量不能在其外部使用,在一个函数外部定义的变量不能在其内部使用(需通过函数参数传递)。由于这个原因,函数内部的变量可以具有与其外部的变量相同的名称,但是它们仍然是完全不同的变量,并且具有不同的值。
|
1
2
3
4
5
6
7
8
|
<?php$a = 1; /* 全局 */function Test(){ echo $a; /* 局部变量 */}Test(); //NULL?> |
函数参数
参数可以按值传递,也可以按引用传递。
任何接受参数的函数都必须在函数首部中声明这些参数。
|
1
2
3
4
5
6
7
8
|
<?php$a = 1; /* 全局 */function Test($a){ echo $a; /* 局部变量 */}Test($a); // 1?> |
全局变量
被定义在所有函数以外的变量,其作用域是整个PHP文件,能在程序的任何地方访问。
include,require 引入文件那一行之前定义的变量可供包含文件使用。包含文件内定义的变量可供 include,require 那一行之后的父(包含)脚本使用。
只要在变量前面加上关键字GLOBAL,就可以将其识别为全局变量。
|
1
2
3
4
5
6
7
8
9
10
11
|
<?php$a = 1;$b = 2;function Sum(){ global $a, $b; $b = $a + $b;}Sum();echo $b; // 3?> |
静态变量
函数参数在函数退出时会撤消,而静态变量则不同,静态变量在函数退出时不会丢失值,并且再次调用此函数时还能保留这个值。
在变量名前加上关键字STATIC就可以声明一个静态变量,在声明中用表达式的结果对其赋值会导致解析错误
|
1
2
3
4
5
6
7
8
9
10
11
|
<?phpfunction test(){ static $a = 0; echo $a; $a++;} test(); //输出0 test(); //输出1echo $a; //NULL?> |
静态变量也提供了一种处理递归函数的方法。递归函数是一种调用自己的函数
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?phpfunction test(){ static $count = 0; $count++; echo $count; if ($count < 10) { test(); } $count--;}?> |
以上就是PHP变量作用域的全部内容,欢迎大家学习。


相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型