Задать вопрос
@Mr-Governor
Губернирую

Почему ПХП говорит что метод объекта не определен?

Всем доброго дня! Есть код описывающий объекты классов:
class bookList //Содержит в себе массив объектов book
{
	static private $count;
	private $masBookList;
	
	function __construct()
	{
		$count = 0;
		$masBookList = array();
		$this->loadBookList();
	}

	function __destruct()
	{
		unset($masBookList);
	}


	public function loadBookList()
	{
		$conn = new PDO('mysql:host=localhost;charset=utf8;dbname=Library;','root','');
		$PDOStatment = $conn->prepare('SELECT `id`, `name`, `pages`, `pubHouse`, `author`, `year`, `quantity` FROM book LIMIT 100;');
		if($PDOStatment) $PDOStatment->execute(); else die('Запрос не был подготовлен!');

		if($PDOStatment->rowCount())
		{
			while( $tmp = $PDOStatment->fetch(PDO::FETCH_ASSOC) )
			{
				$masBookList[] = new book($tmp['ID'], $tmp['name'], $tmp['pages'], $tmp['pubHouse'], $tmp['author'], $tmp['year'], $tmp['quantity']);
			}
			$this->setCount(0);
		}

	}

	public function getID(){return $masBookList[$count]->$ID;}
	public function getName(){return $masBookList[$count]->$name;}
	public function getPages(){return $masBookList[$count]->$pages;}
	public function getPubHouse(){return $masBookList[$count]->$pubHouse;}
	public function getAuthor(){return $masBookList[$count]->$author;}
	public function getYear(){return $masBookList[$count]->$year;}
	public function getQuantity(){return $masBookList[$count]->$quantity;}

	public function setCount($i){$count = $i;}
}

class book //Простая структура для хранения атрибутов книги
{
	private $ID;
	private $name;
	private $pages;
	private $author;
	private $pubHouse;
	private $year;
	private $quantity;
	
	function __construct($_ID, $_name, $_pages, $_pubHouse, $_author, $_year, $_quantity)
	{
		$ID = $_ID; $name = $_name; $pages = $_pages;
		$pubHouse = $_pubHouse; $author = $_author; $year = $_year;
	}
}


В другом файле подключаю классы, и пытаюсь получить имя первой книги:

$bookList = new bookList(); //Создаю объект списка классов, конструктор должен вызвать метод loadBookList() и инициализировать список.
	echo bookList.getName(); //Пытаюсь получить имя первой книги, это строка 54, тут ошибка!


Получаю ошибку: Fatal error: Call to undefined function getName() in C:\OSPanel\domains\Library\books\index.php on line 54

Почему не вызывается метод getName()?
  • Вопрос задан
  • 147 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Во-первых конечно -> а не точка, здесь вам не JS(или еще что-нибудь).

Во-вторых, код полная каша и работать не будет, прям от начала и до конца.
Ответ написан
Комментировать
TerNik
@TerNik
$?
echo $bookList.getName();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dgrigory
Вместо
echo bookList.getName();
надо
echo $bookList->getName();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы