在构造函数中定义一个变量会导致“从空值创建默认对象错误”。

11 浏览
0 Comments

在构造函数中定义一个变量会导致“从空值创建默认对象错误”。

我在开发服务器上使用PHP 5.4.15和PyroCMS,所以我安装了一个新的模块(由他人创建),并且一直收到以下警告:

遇到了一个PHP错误

严重性:警告

消息:从空值创建默认对象

文件名:admin/newsletters.php

行号:63

这是第63行的代码:

$this->data->pagination = create_pagination('admin/newsletters/index', $total_rows);

所以根据PHP文档和谷歌的搜索结果,似乎变量$this->data没有被初始化,所以在类的构造函数中,我声明如下:

public function __construct() {
        parent::__construct();
        $this->data = "";
}

但是错误仍然出现,所以我的问题是:

  1. 我的解决方案有什么问题?
  2. 如果我在类的构造函数中声明或定义一个变量,这个变量会被初始化吗?(这是与面向对象编程相关的部分)
0
0 Comments

在构造函数中定义一个变量会导致“Creating default object from empty value”错误的出现。解决方法是在类中定义变量,并在构造函数中初始化该变量。然后可以在对象中使用这个变量。如果要在函数中使用这个变量,需要在对象中定义一个与变量同名的属性,然后将值赋给这个属性。如果想要消除警告信息,可以使用一个关联数组来存储分页信息。这个问题的详细讨论可以参考这个链接:stackoverflow.com/questions/1949966。可能需要修改整个代码来避免这个错误的出现。

0