全局变量和局部变量的区别----第⑤篇

下图代码直接报错,是为什么呢?

代码:

<?php

$x=5; // 全局变量
function Test()
{
    // global $x;
    $y=10; // 局部变量
    echo "<p>测试函数内变量:<p>";
    echo "变量 x 为: $x";
    echo "<br>";
    echo "变量 y 为1111111111111111111111111111: $y";
    return $y;

}
$result = Test();
echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br/>";
echo "变量 y 为: $result";

在以上实例中 Test() 函数定义了 $x 和 $y 变量。 $x 变量在函数外声明,所以它是全局变量 , $y 变量在函数内声明所以它是局部变量。

·当我们在函数里面,想要直接获取函数外面的全局变量,是拿不到的,而且会报错;但是在函数外面直接拿$x可以直接获取成功,同理在函数外面想直接拿到函数里面的$y,也是不能直接获取的,这时就有好几种方法来获取。

想要在函数内拿到全局变量,方法一:使用global

global $x;

成功输出$x的值

方法二:$GLOBALS,PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。所以可以直接访问到变量,如下方代码

代码:

$globalVar = '你好你好你好~!!';
function myFunction() {
    $GLOBALS['globalVar'] = 'Hello, World!';

}


myFunction();
echo $globalVar; // 输出 'Hello, World!'

本来全局变量为:你好你好你好,通过修改后变成:Hello, World!

所以需要获取变量直接使用$GLOBALS方法

方法三:通过实参和形参来互相修改

代码:

function Test1(&$a,$b){ //&符号会使局部变量和全局变量一起修改
    $a = "我是你的神";
    $c = $b . $a;
}
$qq = '欢迎来到';
$oo = '我的世界';

Test1($oo,$qq);
echo $oo;
echo $qq;

·因为加了&符号,所以最后输出的不是:我的世界,欢迎来到,而是下图

输出结果:

·如果你还是有点迷,那就举个最简单的例子

代码:

function myTest($x) //第二步:获取参数:5
{
    echo $x; //第三步:echo是输出语句,输出5
}
myTest(5); //第一步:将5传给myTest里面的$x

第一步:先调用函数,在括号里面输入数据如:5,

第二步:这个5找到了函数myTest,并且找到了对应的$x,现在的$x可以看成

$x = 5;

第三步:函数里面执行echo $x;

第四步:myTest(5)执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无极程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值