函数内部函数的全局变量

时间:2014-06-20 08:23:54

标签: function codeigniter global-variables

class Someclass{

    function topFunction()
    {       

        function makeMeGlobal($var)
        {
            global $a, $b;

            $a = "a".$var;
            $b = "b".$var;
        }

        makeMeGlobal(1);    
        echo "$a <br>";
        echo "$b <br>";

        makeMeGlobal(2);    
        echo "$a <br>";
        echo "$b <br>";
    }
}

我在codeigniter上使用该测试代码,但没有发生。

我想打印一个像这样的结果

a1
b1
a2
b2 

如何在类中处理这些函数?

2 个答案:

答案 0 :(得分:1)

在函数范围内声明全局变量。

尝试在类范围声明它们:

class Someclass{

    function topFunction()
    {       

        function makeMeGlobal($var)
        {
            global $a, $b;

            $this->a = "a".$var;
            $this->b = "b".$var;
        }

        makeMeGlobal(1);    
        echo $this->a . "<br>";
        echo $this->b . " <br>";

        makeMeGlobal(2);    
        echo $this->a . "<br>";
        echo $this->b . "<br>";
    }
}

答案 1 :(得分:0)

您正在函数内部创建全局变量,尝试在类范围而不是函数中创建它们。应该工作。