Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] programowanie obiektowe, która opcja jest prawidłowa, Używać global czy w każdej funkcji tworzyć instancję klasy?
grzemach
post
Post #1





Grupa: Zarejestrowani
Postów: 121
Pomógł: 4
Dołączył: 9.06.2007
Skąd: Kielce

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


Witam,
Ostatnio nasunęło mi się pytanie odnośnie programowania obiektowego w PHP (a i chyba ogólnie).

Załóżmy że mamy plik index.php

  1. $pages = new Pages();
  2. $pages->funkcja1();
  3. $pages->funckja2();


Dodatkowo jest klasa z formularzami:
  1. class Forms{
  2. public function submit(){}
  3. public function inputText(){}
  4. }


Teraz w funkcji1 chcemy stworzyć jeden formularz i w funkcji2 chcemy stworzyć jeden formularz.
czyli
  1. class Pages{
  2. public function1(){
  3. $form = new Forms();
  4. // lecimy dalej z formularzem i treścią
  5. }
  6. public function2(){
  7. $form = new Forms();
  8. // dalej treści
  9. }
  10. }



Można zrobić też w drugi sposób tzn index.php by wyglądał
  1. $pages = new Pages();
  2. $form = new Forms();
  3. $pages->funkcja1();
  4. $pages->funckja2();


a Pages:
  1. class Pages{
  2. public function1(){
  3. global $form;
  4. // lecimy dalej z formularzem i treścią
  5. }
  6. public function2(){
  7. global $form;
  8. // dalej treści
  9. }
  10. }


Przy czym z użytkowego punktu widzenia nie ma to żadnego znaczenia. W tej klasie nie ma żadnej zmiennej statycznej, którą można by wymieniać między poszczególnymi funkcjami. Chciałem się zapytać która z tych opcji jest właściwa i która należało by używać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kipero
post
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 50
Dołączył: 28.10.2006
Skąd: Radom

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


A mi wydaje się, że sposób pierwszy jest najlepszy. Nowy formularz = nowa instancja klasy.
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(kipero @ 18.08.2009, 18:29:59 ) *
A mi wydaje się, że sposób pierwszy jest najlepszy. Nowy formularz = nowa instancja klasy.


A jak w drugiej funkcji chcesz użyć instancji, na której przed chwilą wykonywałeś jakieś operacje?
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: 3.10.2025 - 08:10