首页 > 解决方案 > 全局使用数组

问题描述

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

我尝试在类下定义一个数组

<?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;
    }
}
?>

首先fnc1()调用和fnc2()单击 html 中的按钮后调用。我希望像这样访问每个函数中的数组是可能的

<?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;
    }
}
?>

标签: php

解决方案


如果您想要一个由类的所有实例共享的变量,它应该是一个静态类属性。您使用它访问它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);
    }
}

演示


推荐阅读