当我期望“44”时,输出为“24”
class some_class {
public $array = array();
public function construct() {
$this->array[5] = 4;
}
public function something() {
// $this->array at this point is empty, why?
echo (isset($this->array[5])) ? $this->array[5] : 2;
$this->array[5] = 4;
// Here, $this->array holds the value 4 in the key 5 correctly
echo (isset($this->array[5])) ? $this->array[5] : 2;
}
}
$some_object = new some_class();
$some_object->something();
为什么我的期望被打破了?
答案 0 :(得分:9)
您的构造函数未触发它需要调用:
public function __construct(){
// constructor
}
否则数组无法初始化。
答案 1 :(得分:4)
您的问题基本上归结为something()
开头的行,问:
$ this->此时数组是空的,为什么?
这是因为PHP构造函数需要命名为__construct
,而您的构造函数只需命名为construct
。
答案 2 :(得分:2)
永远不会调用您的函数construct()
。您应该将其命名为__construct()
。