私は親クラスのコンストラクタを呼び出すようにしようとしているが、それは誤り親クラスのコンストラクタ呼び出しエラー?
Fatal error: Cannot call constructor
をスローし、同じコードが以前にうまく働いていた、私は何も変更していないと突然かもしれないのか分かりません起こった、それはこのエラーを投げている。
私はstackoverflowに関するいくつかの答えを読んだことがありますが、彼らはあなたの親クラスにはコンストラクタが含まれていないと言います。ここに私のコードは次のとおりです。
class DB
{
var $con;
public function __construct()
{
require_once 'configs/dbconfig.php';
$this->connect();
}
function connect()
{
try{
$this->con = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME,DB_USER,DB_PASS);
$this->con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $ex) {
echo $ex->getMessage();
}
}
}
そして私はDBを拡張し、DBのコンストラクタを呼び出しているクラスの記事を持っています。
class Posts extends DB
{
var $user_id;
public function __construct($user_id)
{
parent::__construct();
$this->user_id = $user_id;
}
function get_posts($search,$pages,$since_id=0,$max_id=false,$count=20,$status='active')
{
$extra = '';
if($search) $extra .= " AND text LIKE CONCAT('%',:search,'%')";
if(!empty($pages)) $extra .= " AND page IN('".implode("','", $pages)."')";
if(!empty($status) && $status != 'all') $extra .= " AND status=:status";
$max_id = ($max_id) ? $max_id : time();
$sqlCommand = "SELECT id,pid,text,media,media_url,type,name,u_id,username,user_profile_url,user_photo_url,post_url,date,status,source,page_id FROM ".POSTS." WHERE date>=:since_id AND date<=:max_id".$extra." AND user_id=:user_id ORDER BY date DESC LIMIT $count";
$params = array(':since_id'=>$since_id,':max_id'=>$max_id,':user_id'=>$this->user_id);
if($search) $params[':search'] = $search;
if($status && $status != 'all') $params[':status'] = $status;
$posts = $this->fetch($sqlCommand,$params);
return $posts;
}
}
@daisyありがとう、私は5.5から5.6に私のPHPのバージョンを変更し、それは私の問題を解決した。 –