错误:'试图获取非对象的属性'

时间:2015-01-20 09:15:08

标签: php html web

所以我遇到了这个麻烦。第3,4,5行的错误。这就是我定义对象属性的方法:

class Article {
//line 3
public $id; // line 4
public $pubDate; // line 5
public $title;
public $content;

这是我的方法,它给出了一个错误:

  public static function getById( $id ) {
  $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
  $sql = "SELECT *, UNIX_TIMESTAMP(pubDate) AS pubDate FROM material WHERE id = :id";
  $st = $conn->prepare( $sql );
  $st->bindValue( ":id", $id, PDO::PARAM_INT );
  $st->execute();
  $row = $st->fetch();
  $conn = null;
  if ( $row ) return new Article( $row );
}

我尝试使用以下方法禁用错误:

error_reporting(0);
@ini_set('display_errors', 0);

但它只是掩盖了这个问题,出版物仍然没有出现在页面上。 谢谢。

这是函数构造函数:

public function __construct($data = array()) {
    if ( isset( $data['id'] ) ) $this->id = $data['id'];
    if ( isset( $data['pubDate'] ) ) $this->pubDate = $data['pubDate'];
    if ( isset( $data['title'] ) ) $this->title = $data['title'];
    if ( isset( $data['content'] ) ) $this->content = $data['content'];
}

调用getById方法的函数:

function viewArticle() {
if ( !isset( $_GET["articleId"] ) || !$_GET["articleId"] ) {
    homepage();
    return;
}

$results = array();
$results['article'] = Article::getById( (int) $_GET["articleId"] );
$results['pageTitle'] = $results['article']->title;
require( TEMPLATE_PATH . "/viewArticle.php" );

}

1 个答案:

答案 0 :(得分:0)

已找到解决方案。问题是 - 我的愚蠢。 最诚挚的问候所有引导我的人并回应我的求助。