大家好,这是我在这个着名且有用的网站上的第一个问题。 我是PDO和对象php的新手。 我也是法国人,所以我的英语并不完美。
这是一个简单的代码,但它不起作用。它有什么问题?
Model.php
require_once('config.php');
abstract class Model
{
protected static $db = null;
public function __construct()
{
$this->connexion();
}
private function connexion()
{
$db_options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
);
if(is_null(self::$db))
{
try
{
self::$db = new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME, DBUSER, DBPASS, $db_options);
}
catch (PDOException $e)
{
die("Erreur de connexion : " . $e->getMessage());
}
}
}
}
homeModel.php
require_once('Model.php');
class HomeModel extends Model
{
private $title;
public function __construct()
{
$this->getTitle();
}
private function getTitle()
{
$sql = parent::$db->query("SELECT title FROM table");
$sql->execute();
$sql->fetchAll();
$sql->closeCursor();
}
}
在继承类中执行公共函数parent :: __ construct()时,我有这样的错误:解析错误:语法错误,意外' ::' (T_PAAMAYIM_NEKUDOTAYIM),期待'('在HomeModel.php第10行
我将构造函数视为默认操作。因此,当子类调用主类时,我希望主类自动执行构造函数中定义的操作。
答案 0 :(得分:0)
你需要$ this-> getTitle();到物业
$this->title = $this->getTitle();
也像提到的那样调用父构造函数
parent::__construct();
$this->title = $this->getTitle();