Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 错误:“尝试获取非对象的属性”_Php_Html_Web - Fatal编程技术网

Php 错误:“尝试获取非对象的属性”

Php 错误:“尝试获取非对象的属性”,php,html,web,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_PASS

所以我有这个麻烦。第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" );

}已找到解决方案。问题是——我的愚蠢。
向所有指导我并回应我求助的人致以最诚挚的问候。

您从哪一行得到错误?顺便说一句,你不应该只是试图抑制错误。上面没有34行。请在这些行上加上注释。对不起。已更正。您的问题中没有试图获取对象属性的代码。。。同样,您的article类也没有构造函数,所以请检查新的article$row真正生成了什么,或者$row包含了什么,conn和sql应该是$conn和$sql。请把这个关上。