我在我的开发服务器中使用PHP 5.4.15的PyroCMS,所以我安装了一个新的模块(由其他人创建),并一直得到这个警告:
遇到PHP错误
严重性:警告
消息:从空值创建默认对象
文件名:admin/newsletters.php
行号:63
第63行:
$this->data->pagination = create_pagination('admin/newsletters/index', $total_rows);
所以在PHP文档和谷歌中,var $this->data
没有初始化所以在类的构造函数中,我声明如下:
public function __construct() {
parent::__construct();
$this->data = "";
}
但是错误仍然出现,所以我的问题是:
- 我的解决方案有什么问题?
- 如果我在类构造函数中声明或定义一个变量,这个变量是否初始化?(这是相关的OOP部分)
您不需要像在函数式PHP中那样初始化。在类中定义它就足以使它存在于对象中,供您随意使用。
Class extends Parent {
public $data;
public function __construct() {
parent::__construct();
$this->data = 'Hello, world!';
}
}
作为…
$new = new Class();
echo $new->data;
// Hello, world!
同样…
$new = new Class();
$new->data = 'Goodbye, cruel world.';
echo $new->data;
// Goodbye, cruel world.