Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Polimorfizm, Problem z wywoałniem metody swojej klasy
morris4life
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 31.05.2008

Ostrzeżenie: (0%)
-----


Witam,
mam taki kod:

  1. <?php
  2. class MyClass extends DOMNode{
  3. function Hello(){
  4. return '<b>Hello! World.</b>';
  5. }
  6. }
  7.  
  8. $doc = new DOMDocument();
  9. $doc->load('test.xml');
  10. $NodeList = $doc->getElementsByTagName('test');
  11.  
  12. $Node = new MyClass();
  13. echo $Node->Hello();
  14. $Node = $NodeList->item(0);
  15.  
  16. echo $Node->nodeValue;
  17. echo $Node->Hello();
  18. ?>


Wszystko jest ok aż do ostatniej linijki kodu - echo $Node->Hello();
Wynik skryptu:

Hello! World. test1
Fatal error: Call to undefined method DOMElement::Hello() in D:\WebServ\httpd-users\test\index.php on line 17

Czy istnieje jakieś rozwiązanie aby obiekt $Node = new MyClass() po przypisaniu $NodeList->item(0); był nadal obiektem klasy MyClass? (IMG:style_emoticons/default/questionmark.gif) ?

Przez to cała robota mi stanęła...proszę o pomoc (IMG:style_emoticons/default/smile.gif)

Ten post edytował morris4life 30.11.2009, 11:31:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
nospor
"Gdyż $node to obiekt klasy DOM i nie ma nic wspólnego z MyClass"

no to chyba nie całkiem do końca jest tak jak piszesz, ponieważ
[PHP] pobierz, plaintext
$Node = $NodeList->item(0);

jest właśnie klasy DOMNode
Pokazany palcem a ten nadal nie kuma....

Cytat
jest właśnie klasy DOMNode
No wlasnie, jest klasy DOMNode i nie ma nic wspolnego z MyClass!
To MyClass dziedziczy po DOMNode a nie na odwrót. Jak masz coś co jest DOMNode to to cos nie ma dostępu do MyClass.
Jak masz cos co jest MyClass to ma to dostęp do DOMNode, gdyż MyClass dziedziczy po DOMNode.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 17:10