![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 15.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam do was takie banalne pytanie, na którym niedawno sie zaciełęm. Tworzę sobie nowy obiekt jakiejś klasy. Ma ona w konstruktorze parametr id, na podstawie którego pobierane są dane z bazy które wypełniają reszte pól w obiekcie. Do tej pory myślałem, że aby przerwać tworzenie obiektu w wypadku gdy wpisu o podanym id nie ma w bazie za pomocą return false. Okazał się jednak, że tak nie jest w moim przypadku, gdyż obiekt tworzy się mimo to tylko z pustymi polami. Ogólnie jego kod wygląda tak
Kod class Menu extends ObjectModel { protected $id_menu; protected $nazwa_menu; public function __construct($id=null) { parent::__construct(); if(!empty($id)) { if(!is_numeric($id)) return false; $sql = "SELECT * FROM menu WHERE id_menu = '$id'"; $menu = $this->dbhandle->select($sql); if(!empty($menu)) $this->setAll($menu[0]); else return false; } } } To jest tylko kod contruktora ale powinno wystarczyć. Co mam zrobić aby w przypadku podania nieprawidłowego id obiekt nie został utworzony? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Wydaje mi sie ze nie mozna uzyskac to czego ty chcesz poniewaz obiekt musi sie stworzyc by kod kontruktora sie wykonal.
By uzwglednic czy dany obiekt ma sie utworzyc lub nie musialbys to sprawdzic przed jego inicjalizacja. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 08:00 |