全局使用数组

时间:2019-04-16 00:42:55

标签: php

为此,我需要访问每个函数上的数组,但我要全局定义数组,但它显示了未定义的变量错误。

我尝试在类下定义数组

<?php
new SampleController();

class  SampleController {
    static $array_global = [];

    public function fnc1(){
        $fnc1_array = array('1','2','3');
        self::$array_global['fnc1_array'] = $fnc1_array;
    }

    public function fnc2(){
         print_r(self::$array_global);exit;
         $fnc2_array = array('a','b','c');
         $array_global['fnc2_array'] = $fnc2_array;
    }
}
?>

点击html中的按钮后,fnc1()首先调用,fnc2()调用。我希望这样可以访问每个函数中的数组

<?php
new SampleController();

class  SampleController {
    global $array_global;
    $array_global = array();

    public function fnc1(){
        $fnc1_array = array('1','2','3');
        $array_global['fnc1_array'] = $fnc1_array;
    }

    public function fnc2(){
        $fnc2_array = array('a','b','c');
        $array_global['fnc2_array'] = $fnc2_array;
    }
}
?>

1 个答案:

答案 0 :(得分:0)

如果要让一个类的所有实例共享一个变量,则该变量应该是静态的类属性。您使用self::$variable

访问它
class  SampleController {
    static $array_global = [];

    public function fnc1(){
        $fnc1_array = array('1','2','3');
        self::$array_global['fnc1_array'] = $fnc1_array;
    }

    public function fnc2(){
        $fnc2_array = array('a','b','c');
        self::$array_global['fnc2_array'] = $fnc2_array;
    }

    public function printArray() {
        var_dump(self::$array_global);
    }
}

DEMO