Добраться всем. я закодировал класс, возвращающих меня:PHP Расширяет класс
Notice: Undefined variable: db in /Applications/MAMP/htdocs/Test Vari/index.php on line 12
Fatal error: Call to a member function row() on null in /Applications/MAMP/htdocs/Test Vari/index.php on line 12
Это первая часть файла PHP:
session_start();
$_SESSION['ID'] = 1;
require_once 'pass/password.inc.php'; /*Here's the DB Class*/
Я продлил класса в другой, вот код:
class pg extends DB{
public $id;
function __construct(){
parent::__construct();
$this->id = $_SESSION['ID'];
}
public function pgname(){
$rs = $db->row("SELECT CONCAT(Nome, ' ', Cognome) FROM Personaggio WHERE id = :id",array("id"=>$this->id));
return($rs);
}
}
$pg = new pg();
print_r ($pg->pgname());
$ db-> row() объявлен в классе DB, который я расширил, и я точно знаю, что он работает. Класс DB не инициализирован, и когда я делаю, ошибка же, это, как я это сделать:
class pg extends DB{
public $id;
public $db;
function __construct(){
parent::__construct();
$this->db = new DB();
$this->id = $_SESSION['ID'];
}
public function pgname(){
$rs = $db->row("SELECT CONCAT(Nome, ' ', Cognome) FROM Personaggio WHERE id = :id",array("id"=>$this->id));
return($rs);
}
}
Фатальная ошибка исчезнет, когда я удалить скобки в print_r($pg->pgname);
Да, вот так: Php session_start(); $ _SESSION ['ID'] = 1; require_once 'pass/password.inc.php'; –
public function pgname ($ id) { $ rs = $ this-> db-> row ("SELECT CONCAT (Nome, '', Cognome) FROM Personaggio WHERE ID =: id", array ("id" => $ Я бы)); return ($ rs); } $ pg = new pg(); echo ($ pg-> pgname ($ _ SESSION ['ID'])); Примечание: Неопределенное свойство: pg :: $ db in/Applications/MAMP/htdocs/Test Vari/index.php в строке 9 Неустранимая ошибка: Позвоните участнику function row() on null in/Applications/MAMP/htdocs/Test Vari/index.php в строке 9 –
Прочитайте мой ответ '$ rs = $ this-> row (" .... 'NOT' $ this-> db -> row ('Вам не нужно' db', поскольку вы расширили класс DB, весь класс рассматривается как единое целое. – RiggsFolly