php变量作用域之global、static关键字的作用

原创 PHP笔记  2017-03-09 15:03  阅读 2,495 views 次
  • local:局部
  • global:全局
  • static:静态
  • parameter:参数

局部和全局变量:

局部变量:在php函数中声明的变量叫局部变量,只有局部作用域,只能在函数内部访问。

全局变量:在所有的函数的外部声明的变量叫全局变量,拥有全局作用域。全局变量可以被在脚本中的任何地方访问,但在函数中访问需要使用 global 关键字。

实例:

<?php
$a=1;//全局变量
function sum()
{
 $b=3;//局部变量
 echo $a;//Notice: Undefined variable: a(未定义变量a)不能直接访问全局变量,需用global关键字
 global $a;//global关键字访问全局变量
 echo $a;//可以访问
 echo $b;//可以访问
echo $a+$b;//可以访问
}
sum();//执行函数
echo $a;//可以访问
echo $b;//Notice: Undefined variable: b(未定义变量a)不能访问局部变量。
?>

$GLOBALS[index]数组:

通过$GLOBALS[index]数组也可以在函数内访问或更新全局变量。

实例:

<?php
$a=1;
$b=2;
function num()
{
echo $GLOBALS['a'],$GLOBALS['b'];//可以访问全局变量
$c=$GLOBALS['a']+$GLOBALS['b'];//可以访问全局变量
echo $c;
}
num();
?>

运行结果:123

static关键字:

当函数运行完之后,函数内的变量通常都会被销毁。在实际操作中,有时候会希望某个局部变量不被销毁。当然,这也是可以办到的,但最直接简单的方法就是使用static 关键字,接下来就用实例来说一说static 关键字的用法。

实例:

<?php
function sum()
{
static $b=0;
$a=2;
$b=$a+$b;
echo $b;
}
sum();
sum();
sum();
sum();
?>

运行结果:2468

实例解释:

变量$b使用static 关键字后,$b变量值不随函数运行完而销毁,在之后再运行函数时还保留之前运行函数的值,所以每次运行函数的值都不一样。

参数作用域:

参数是通过调用代码将值传递给函数的局部变量,作用域只限于函数内部。

实例:

<?php
function sum($a)
{
echo $a;//$a只能在此函数体内访问
}
sum(1);
?>

运行结果:1

本文地址:https://www.ggbiji.com/php-global-static.html
版权声明:本文为 PHP笔记 原创/整理文章,欢迎分享,转载请注明出处!

发表评论


表情