![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 550 Pomógł: 9 Dołączył: 29.05.2009 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Witam,
takie pytanie czy to jest polimorfizm? Kod <?php class Model_Items extends Model_Table { protected $_name = 'articles'; protected $_primary = 'i_id'; public function insert($data) { unset($data['Zapisz']); $itemId = parent::insert($data); return $itemId; } ?> Kod <?php class Model_Table extends Zend_Db_Table_Abstract { public function itemsToRowset($data) { $db = $this->getAdapter(); $params = array(); $params['db'] = $db; $params['table'] = $this; $params['data'] = $data; return new Zend_Db_Table_Rowset($params); } } ?> Z tego co rozumiem polimorfizm to przesyłanie metod. Czyli mogę np: z klasy Model_Items odwołać się do metod z klas dziedziczonych? Jeśli tak nie jest proszę o wytłumaczenie o co chodzi ze składnią parent::? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie przesyłanie, a przesłanianie, a cechą polimorfizmu jest możliwość nadpisania metody rodzica przez klasę wyprowadzoną (zmiana zachowania). Natomiast wywołanie parent w klasie dziedziczącej jest odwołaniem się do implementacji metody klasy bazowej (rodzica), po prostu w swojej metodzie wywołujesz kod z metody rodzica, odwrotnie się nie da, tzn. rodzic nigdy nie wie nic o swoim dziecku.
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 248 Pomógł: 31 Dołączył: 14.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
W polimorfizmie chodzi bardziej o to że jedna funkcja zależnie od klasy zachowa się w różny sposób :
http://pl.wikipedia.org/wiki/Polimorfizm_%28informatyka%29 parent:: służy do odwołania się do klasy rodzica np masz funkcję display() znajdującą się w rodzicu, i chcesz ją wykorzystać, ale dopisać do niej powiedzmy 'echo "a";'
wtedy wykorzystujesz to co już masz i daje Ci to możliwość rozwinięcia tego ![]() -------------------- Jeżeli pomogłem kliknij "Pomógł" :)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 550 Pomógł: 9 Dołączył: 29.05.2009 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze takie pytanie o co chodzi w metodzie itemsToRowset a dokładnie nie rozumiem tej linijki kodu return new Zend_Db_Table_Rowset($params);?
Kod <?php class Model_Table extends Zend_Db_Table_Abstract { public function itemsToRowset($data) { $db = $this->getAdapter(); $params = array(); $params['db'] = $db; $params['table'] = $this; $params['data'] = $data; return new Zend_Db_Table_Rowset($params); } } ?> Z tego co przypuszczam przekazuje parametry do obiektu klasy Zend_Db_Table_Rowset? Czyli łączenie do bazy danych, tabela, dane? Tak? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 248 Pomógł: 31 Dołączył: 14.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Takie coś
zwróci Ci w wyniku referencje do obiektu Zend_Db_Table_Rowset , który pobiera z tabeli konkretne pola przekazane w $data Ten post edytował Ilware 12.01.2012, 22:53:09 -------------------- Jeżeli pomogłem kliknij "Pomógł" :)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 08:11 |