Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] sprawdzenie instancji danej klasy, jak sprawdzic, czy zostały utworzone juz jakies obiekty klasy X.
plisek
post 24.05.2006, 14:00:43
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 28.08.2005

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


witam sadsmiley02.gif

czy jest mozliwe sprawdzenie, czy instnieje jakas instancja klasy?
np mamy klase A
i chcę sprawdzic, czy został juz utworzony jakis obiekt tej klasy.

szukam w manualu, ale niestety od dłuzszego czasu nie moge znaleśc
można sprawdzic czy dany obiekt jest implementacja jakiejs klasy, ale nie oto mi chodzi

pozdr

Ten post edytował plisek 24.05.2006, 14:01:47


--------------------
ThE EnD oF ThE InTErnEt !
pasy zabezpieczające
Go to the top of the page
+Quote Post
dr_bonzo
post 24.05.2006, 14:36:34
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Np. uzyj takiego kodu:
  1. <?php
  2. class JakasKlasa
  3. {
  4. static private $instanceCounter = 0;
  5. static public function getNewInstance( $param1, $param2 )
  6. {
  7. $obj = new JakasKlasa( $param1, $param2 );
  8. self::$instanceCounter++;
  9. return $obj;
  10. }
  11.  
  12. private function __construct( $param1, $param2 )
  13. {
  14. //....
  15. }
  16.  
  17.  
  18. static public function getInstancesCount()
  19. {
  20. return self::$instanceCounter
  21. }
  22. }
  23.  
  24. $x = JakasKlasa::getNewInstance( 1,);
  25. print( 'count = ' . JakasKlasa::getInstancesCount() . '<br />' );
  26. $y = JakasKlasa::getNewInstance( 1,);
  27. print( 'count = ' . JakasKlasa::getInstancesCount() . '<br />' );
  28. ?>


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
plisek
post 24.05.2006, 17:24:40
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 28.08.2005

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


dzieki za pomoc, nawet mi to do głowy nie przyszło ohmy.gif

ale czy nie mozna tego krocej napiszć np:
  1. <?php
  2. class JakasKlasa {
  3.  
  4. static public $instanceCounter = 0;
  5.  
  6. public function __construct() {
  7.   //tworzac nowy obiekt w konstruktorze zwiekszam licznik instancji klasy
  8. self::$instanceCounter++;
  9. }
  10.  
  11. static public function getInstancesCount() {
  12. return self::$instanceCounter;
  13. }
  14. }
  15.  
  16. $x = new JakasKlasa;
  17. $z = new JakasKlasa;
  18.  
  19. echo JakasKlasa::$instanceCounter; // 2 obiekty 2 w liczniku 
  20. ?>



powiem szczerze, ze na moje potrzeby to wystarczy.
interesuje mnie zaś czy bedzie jakas rożnica w funkcjonalności tych dwoch podobnych skryptow.
Bo może sie myle i takie przerobienie jest błedem ?!

pozdr

Ten post edytował plisek 24.05.2006, 17:26:37


--------------------
ThE EnD oF ThE InTErnEt !
pasy zabezpieczające
Go to the top of the page
+Quote Post
dr_bonzo
post 24.05.2006, 18:15:04
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


  1. <?php
  2. public function __construct() {
  3.  //tworzac nowy obiekt w konstruktorze zwiekszam licznik instancji klasy
  4. self::$instanceCounter++;
  5. }
  6. ?>

No tak -- duzo prosciej smile.gif
Po prostu mam jeszcze goraczke biggrin.gif

Cytat
interesuje mnie zaś czy bedzie jakas rożnica w funkcjonalności tych dwoch podobnych skryptow.

Beda dzialac tak samo.
Pamietaj jednak zeby nie zwiekszac licznika gdy wyrzucasz wyjatek z konstruktora -- bo obiekt nie zostanie utworzony a licznik zostanie zwiekszony.


--------------------
Nie lubię jednorożców.
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: 15.07.2025 - 15:44