代码之家  ›  专栏  ›  技术社区  ›  PHPFan

如何使用全局变量初始化类属性?

  •  0
  • PHPFan  · 技术社区  · 6 年前

    我使用的是php 7.2.6

    我知道“函数外声明的变量有一个 全球范围 只能在函数外部访问。

    我想把已经声明的全局变量放到我的类中。

    我想使用这个全局变量初始化类属性。

    为此,我尝试了以下代码

    <?php
    $str = <<<EOD
    Example of string
    spanning multiple lines
    using heredoc syntax.
    EOD;
    
    class foo
    {
        var $foo;
    
        function __construct()
        {
            $this->foo = $str;
        }
    }
    
    $foo = new foo();
    echo $foo->foo;
    ?>
    

    我在浏览器中收到以下通知:

    Notice: Undefined variable: str in hello.php on line 14
    

    我不明白为什么我会收到这个通知。

    我没有访问全局变量 $str 在任何函数中。我在教室里用。

    请帮助我在这方面,也解释了我应该如何使用全局变量初始化类属性?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Saad Suri    6 年前

    要访问全局变量,需要将全局变量与 global 关键字, 其次,修改器和类共享相同的名称,这将混淆编译器。

    不,不是的

       <?php
    
    $str = <<<EOD
    Example of string
    spanning multiple lines
    using heredoc syntax.
    EOD;
    
    class foo
    {
        public  $foo;
    
        function __construct()
        {
            global $str;
            $this->foo = $str;
        }
    
    
    }
    
    $foo = new foo();
    echo $foo->foo;
    ?>
    

    Snippet

    Why not to use global variables