PHP中的全局变量、静态变量与可变变量

一、全局变量

全局变量通常使用关键字 global 来声明,全局变量访问的第一个办法:

<?php

$a = 1;
$b = 2;

function sum()
{
    global $a, $b;
    $b = $a + $b;
}

sum();
echo $b;

结果输出 3。在函数中声明了全局变量 a 和a和b 之后,对任一变量的所有引用都会指向其全局版本。对于一个函数能够声明的全局变量的最大个数,PHP 没有限制。

在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义 $GLOBALS 数组。前面的例子可以写成:

<?php

$a = 1;
$b = 2;

function sum()
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

sum();
echo $b;

结果输出为:3

二、静态变量

静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。

<?php

function test()
{
    static $a = 0;
    echo $a.PHP_EOL;
    $a++;
}
test();
test();

输出结果为:0 1

三、可变变量

一个变量的变量名可以动态的设置和使用,例如:

<?php

$a = 'hello';
$$a = 'world';

var_dump($a,$hello);

结果输出为:

string(5) "hello"
string(5) "world"

如果存在多个可变变量,则会按变量被定义的时间顺序依次从后往前取值循环:

<?php

  //You can even add more Dollar Signs

  $Bar = "a";
  $Foo = "Bar";
  $World = "Foo";
  $Hello = "World";
  $a = "Hello";

  $a; //Returns Hello
  $$a; //Returns World
  $$$a; //Returns Foo
  $$$$a; //Returns Bar
  $$$$$a; //Returns a

  $$$$$$a; //Returns Hello
  $$$$$$$a; //Returns World

  //... and so on ...//
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值