PHP 变量作用域的问题

发布于 2022-09-06 05:51:13 字数 56 浏览 23 评论 0

PHP 在类外定义变量,有哪些好的方法能使类中所有函数都能访问?(若是匿名函数请详细举例),谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

记忆消瘦 2022-09-13 05:51:13

三个方法:

  • 利用预定义变量 $GLOBALS

    $var_g = '';
    
    class A
    {
        public function foo()
        {
            $var = $GLOBALS['var_g'];
        }
    }

    参考:$GLOBALS

  • 利用 global 关键字

    <?php
    $a = 1;
    $b = 2;
    
    function Sum()
    {
        global $a, $b;
    
        $b = $a + $b;
    }
    
    Sum();
    echo $b; // 输出 3

    参考:global 关键字

  • 利用 set/get 方法

    $var_g = 'g';
    
    class A
    {
        private $var_g;
        public function __construct(&$var)
        {
            $this->var_g = $var_g;
        }
        
        public function foo()
        {
            echo $this->var_g;
        }
    }
    
    $obj = new A($var_g);
    $obj->foo(); // 输出 g

推荐 $GLOBALS 数组。

高速公鹿 2022-09-13 05:51:13
$a = 1;
class b {
    private $a = null;
    public function setA($a) {
        $this->a = $a;
    }
    public function useA() {
        echo $this->a;
    }
}
$_b = new b;
$_b->setA($a);
$_b->useA();
静水深流 2022-09-13 05:51:13

那还不简单,你在外面定义一个变量直接通过构造函数传入给类内的属性不就全部可以访问到了嘛

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文