Глобальные переменные функции внутри функции класса

#function #codeigniter #global-variables

#функция #codeigniter #глобальные переменные

Вопрос:

 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 
 

Как обрабатывать эти функции внутри класса?

Ответ №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>";
    }
}
 

Ответ №2:

вы создаете глобальные переменные внутри функции, попробуйте создать их в области видимости класса, а не в функции. это должно сработать.