我有一个变量属性设置默认值数组,它在我的php 5.6 localhost中工作,但是当我用php 7.1上传到服务器时无法工作,有谁可以告诉我为什么?
class foo {
var $bar = array();
function baz($data) {
$this->bar['data'] = $data; <---- works in php 5.6, not working in php 7.1
}
}
在php 7.1中,我必须更新construct
中的变量属性function __construct(){
$this->bar = array();
}
答案 0 :(得分:0)
您提供的代码从PHP版本7.1.25到7.3.2(检查3v4l.org)产生的结果非常相似:
object(foo)#1 (1) {
["bar"]=>
array(1) {
["data"]=>
int(22)
}
}
即使它可行,我还是建议您像发现的那样总是在__construct
中初始化类属性:
function __construct(){
$this->bar = array();
}
更重要的是,更喜欢使用public
/ protected
或private
visibility modifiers中的一个,而不是使用var
来将public
引擎盖。