![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 550 Pomógł: 9 Dołączył: 29.05.2009 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Witam,
nie umiem ogarnąć konstruktora kiedy go używamy i po co? Może ktoś mi wytłumaczy? W poniższym przykładzie mamy klasę dog w której mamy publiczny dostęp do atrybutu $name oraz konstruktora. Z tego co rozumiem konstruktor jest to metoda która w chwili powstania obiektu nadaje mu jakiś właściwości? Ale po co i kiedy tego mam używać? klasa Kod <?php class Dog{ public $name;//atrybut przechowujący imię psa /*konstruktor*/ public function __construct($name){ $this->name = $name; } public function roar(){ echo 'chał chał'; } //ciach } ?> obiekt Kod <?php
require('class.dog.php'); $reksio = new Dog('Reksio'); echo $reksio->name; //atrybut "name" publiczny, więc wyświetlone zostanie 'Reksio' $reksio->roar(); //metoda roar() publiczna, więc wyświetlone zostanie 'chał chał' ?> |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 550 Pomógł: 9 Dołączył: 29.05.2009 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Stworzyłem klasę, która łączy się z bazą oraz pobiera dane.
klasa: Kod <?php class database { private $id; private $name; private $description; private $age; private $con; public function __construct($widgetID) { $this->con = mysql_connect("localhost","root",""); if (! is_resource($this->con)) { throw new Exception('Could not connect: ' . mysql_error()); } $db_selected = mysql_select_db("my_db", $this->con); if (!$db_selected) { die ('Nie można ustawić foo : ' . mysql_error()); } $sql = mysql_query("SELECT * FROM Persons WHERE personID='$widgetID'"); if(! is_resource($sql)) { throw new Exception("Błąd przy wykonywaniu instrukcji wyboru"); } $data = mysql_fetch_array($sql); $this->id = $widgetID; $this->name = $data['FirstName']; $this->description = $data['LastName']; $this->age = $data['Age']; } public function getName() { return $this->name; } public function getDescription() { return $this->description; } public function getAge() { return $this->age; } public function __destruct() { mysql_close($this->con); } } ?> Wyświetlenie danych: Kod <?php require_once('class.database.php'); try { $objWidget = new database(2); print "Imie: ". $objWidget->getName() . "<br>\n"; print "Nazwisko: ". $objWidget->getDescription() . "<br>\n"; print "Wiek: ". $objWidget->getAge() . "<br>\n"; } catch(Exception $e) { die("Wystąpił problem: " . $e->getMessage()); } ?> Wydaje mi się że kod jest poprawny. Teraz mogę sobie dodać tutaj dodawanie, edytowanie oraz usuwanie danych (IMG:style_emoticons/default/smile.gif) . Co do konstruktora, rozumiem że jest on uruchamiany w momencie stworzenia obiektu czyli od razu jesteśmy połączeni z bazą danych, Kod $objWidget = new database(2); i mamy ustawioną właściwość 2 czyli wiersz w bazie na którym chcemy pracować. Ten post edytował cykcykacz 21.04.2011, 19:13:46 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 19:25 |