为了账号安全,请及时绑定邮箱和手机立即绑定

无法访问函数内部的全局变量 INSIDE public function PHP

无法访问函数内部的全局变量 INSIDE public function PHP

PHP
慕的地8271018 2023-10-15 14:43:43
再会。我正在尝试执行一个函数。我声明一个全局变量来获取函数外部的数据(变量),并将该函数放入类的公共函数内。class Test {    public function execute(){        $data = "Apple";                function sayHello() {            global $data;                        echo "DATA => ". $data;                }                sayHello();    }}$test = new Test;$test->execute();预期结果:DATA => Apple真实结果:DATA =>全局变量没有获取函数外部的变量。为什么会发生这样的事?感谢您的帮助。
查看完整描述

1 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

$data不是全局变量。它在另一个函数内,在一个类内。全局变量位于任何函数或类之外。


但无论如何,您的用例是不寻常的 - 很少需要像您所做的那样嵌套函数。这些函数的更传统、更逻辑、更可用的实现可能如下所示:


class Test {

    public function execute(){

        $data = "Apple";

        $this->sayHello($data);

    }


    private function sayHello($data) {

        echo "DATA => ". $data;

    }

}


$test = new Test;

$test->execute();

工作演示:http://sandbox.onlinephpfunctions.com/code/e91b98bb15fcfa71b1c6cbbc305b5a93df678e8b

(这只是一种选择,但它是一个合理的选择,尽管由于这显然是一个简化的抽象示例,因此很难确定您的真实场景实际上需要什么或最适合什么。)


查看完整回答
反对 回复 2023-10-15
  • 1 回答
  • 0 关注
  • 58 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信