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;
}
}
?>
首先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;
}
}
?>
解决方案
如果您想要一个由类的所有实例共享的变量,它应该是一个静态类属性。您使用它访问它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);
}
}
推荐阅读
- javascript - Buildfire - 屏幕事件在 IOS 上不起作用,在 android 和预览上很好
- php - AWS- 子域不支持 HSTS
- javascript - 不丢失树视图结构的淘汰赛搜索
- typescript - 如何让 TypeScript 保证泛型类型具有实现特定方法的属性?
- python - Python 3.7.3 无法将序列的最后一个元素附加到新列表中
- python - Python:ValueError:形状不匹配:形状(3,3)的值数组无法广播到形状(270,3)的索引结果
- kubernetes - 在 kubernetes (minikube) 中使用 ingress-nginx 获取真实的客户端 IP
- c++ - C和C++指针传递和引用传递混淆
- python - 使用具有两个元组的列表作为函数的参数:python
- python - 如何修复 AttributeError: type object 'Book' has no attribute 'published_objects' on django_3.2