Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Dostęp z klasy do funkcji w innej klasie
Pronigo
post 13.05.2008, 19:49:52
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 8.05.2005
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


Witam serdecznie, mam taki uproszczony kod swojego skryptu:

  1. <?php
  2. class pierwsza {
  3.  function zrobto($co) {
  4. echo $co;
  5.  }
  6. }
  7.  
  8. $obiekt = new pierwsza;
  9.  
  10. class druga {
  11. function __construct() {
  12. $obiekt->zrobto('a takie cos');
  13. }
  14. }
  15. ?>


Ten skrypt oczywiscie nie dziala, ale moze ma ktos jakis pomysl jak poprawnie wywolac funkcje zrobto() z innej klasy? Dodam, ze sposob pierwsza::zrobto() odpada, musi byc wykorzystany $obiekt.

Bardzo dziekuje za pomoc smile.gif
Go to the top of the page
+Quote Post
webdice
post 13.05.2008, 19:52:28
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2. class pierwsza {
  3.  function zrobto($co) {
  4. echo $co;
  5.  }
  6. }
  7.  
  8. $obiekt = new pierwsza;
  9.  
  10. class druga {
  11. function __construct(pierwsza $obiekt) {
  12. $obiekt->zrobto('a takie cos');
  13. }
  14. }
  15. ?>


Przy wywoływaniu klasy druga w konstruktorze jako argument przekazujesz obiekt klasy pierwsza.
Go to the top of the page
+Quote Post
NoiseMc
post 13.05.2008, 19:57:41
Post #3





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

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


Ewetualnie:
  1. <?php
  2. class pierwsza {
  3.  function zrobto($co) {
  4. echo $co;
  5.  }
  6. }
  7.  
  8. class druga {
  9. function __construct() {
  10. $obiekt = new pierwsza ();
  11. $obiekt->zrobto('a takie cos');
  12. }
  13. }
  14. ?>


Ten post edytował NoiseMc 13.05.2008, 19:58:07


--------------------
Go to the top of the page
+Quote Post
jarek_bolo
post 14.05.2008, 07:29:48
Post #4





Grupa: Zarejestrowani
Postów: 149
Pomógł: 12
Dołączył: 3.03.2008
Skąd: łódzkie

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


Co prawda uzależnia nam to jedną klasę od drugiej i burzy niezależność obiektów, ale domyślam się, że czasem tak po prostu musi być.

Zauważ, że teraz gdzie kolwiek będziesz chciał użyć klasy druga będziesz musiał includować klase pierwsza.

A może spróbuj zwrócić sam wynik działania metody pierwsza::zrobto() do klasy drugiej?? Jeśli tak możesz zrobić to zachowasz niezależność klas i ich ewentualne niezależne od siebie ponowne użycie w innym projekcie.

No ale tak jak pisałem, wszystko zależy co to za klasy. Być może jest też tak, że one są z góry skazane na współprace ze sobą (są jednym pakietem), więc wtedy odwoływanie się do obiektu jednej klasy w obiekcie klasy drugiej i tak nie zmienia faktu, że klasy muszą być używane zawsze razem.


--------------------
"Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! |
Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 17:48