为此,我需要访问每个函数上的数组,但我要全局定义数组,但它显示了未定义的变量错误。
我尝试在类下定义数组
<?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;
}
}
?>
答案 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);
}
}