| Newsgroups |
php.notes |
| Message-ID |
<[email protected]> |
<?php
require_once 'Book.php';
class BookManager {
private array $books = [];
private int $nextId = 1;
public function __construct(array $initialBooks = []) {
foreach ($initialBooks as $bookData) {
$book = new Book($bookData['id'], $bookData['title'], $bookData['author'], $bookData['year']);
$this->books[$book->id] = $book;
if ($book->id >= $this->nextId) {
$this->nextId = $book->id + 1;
}
}
}
public function getAllBooks(): array {
return array_map(fn($book) => $book->toArray(), $this->books);
}
public function getBookById(int $id): ?Book {
return $this->books[$id] ?? null;
}
public function createBook(string $title, string $author, int $year): Book {
$book = new Book($this->nextId++, $title, $author, $year);
$this->books[$book->id] = $book;
return $book;
}
public function updateBook(int $id, string $title, string $author, int $year): bool {
if (!isset($this->books[$id])) {
return false;
}
$this->books[$id] = new Book($id, $title, $author, $year);
return true;
}
public function deleteBook(int $id): bool {
if (!isset($this->books[$id])) {
return false;
}
unset($this->books[$id]);
return true;
}
}
----
Server IP: 45.112.84.4
Probable Submitter: 80.90.5.137 (proxied: 193.170.70.27)
----
Manual Page -- https://php.net/manual/en/domdocument.registernodeclass.php
Edit -- https://main.php.net/note/edit/130230
Del: integrated -- https://main.php.net/note/delete/130230/integrated
Del: useless -- https://main.php.net/note/delete/130230/useless
Del: bad code -- https://main.php.net/note/delete/130230/bad+code
Del: spam -- https://main.php.net/note/delete/130230/spam
Del: non-english -- https://main.php.net/note/delete/130230/non-english
Del: in docs -- https://main.php.net/note/delete/130230/in+docs
Del: other reasons-- https://main.php.net/note/delete/130230
Reject -- https://main.php.net/note/reject/130230
Search -- https://main.php.net/manage/user-notes.php