PHP学习(三)

博客主要介绍了PHP中全局变量的相关知识,包括使用关键字声明全局变量,函数中声明全局变量后引用指向全局版本,PHP对函数声明全局变量个数无限制,还提到用$GLOBALS数组在全局范围访问变量,以及变量解析是从最右边开始。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

blazar     实验楼

  • 全局变量

    全局变量通常使用关键字 global 来声明

    <?php
    
    $a = 1;
    $b = 2;
    
    function sum()
    {
        global $a, $b;
        $b = $a + $b;
    }
    
    sum();
    echo $b;
    

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

1552867086571

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

<?php

$a = 1;
$b = 2;

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

sum();
echo $b;

通过传参实现了函数调用外部变量,接下来使用 global 关键字

编辑 /home/shiyanlou/variable.php

<?php

$hi = 'Hi';
$hello = 'Hello';

function sayHi()
{
    global $hi;
    echo $hi;
}

function sayHello($hello)
{
    echo $hello;
}

sayHi();
sayHello($hello);

执行 php variable.php

在这里插入图片描述

  • 变量解析

a与a 与aa的解析,是从最右边开始解析。最后生成a 的解析,是从最右边开始解析。最后生成a前一个值为名称的变量。
如:

<?php

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

var_dump($a,$hello);

结果输出

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

上例中动态设置了一个变量 $hello,通常多个 $ 会依次从最后边开始解析,最后生成 $ 前一个值为名称的变量。

编辑 /home/shiyanlou/test.php

<?php

$a = 'b';
$b = 'c';
$c = 'd';

$$$$a = 'bcd';

var_dump($d);

执行 php test.php
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值