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
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat
czy jest jakiś sposób aby przypisać właściwości obiektu A do B ale nie zamieniając A w B tylko niech pozostanie A?


Kompozycja, można w klasie B zawrzeć obiekt klasy A, np.

  1. class B {
  2. protected $from_A;
  3. function __construct() {
  4. include_once 'A.class.php';
  5. $this->from_A = new A();
  6. }
  7. }
  8.  


Ten post edytował darko 30.11.2009, 12:36:58
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: 28.12.2025 - 02:18