Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> class_exists
koala
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 4.03.2005

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


Witam
W ramach testów zrobiłem coś takiego :
index.php
  1. <?php
  2. function __autoload( $class )
  3. { 
  4. CCC::loadClass( $class );
  5. } // end : function __autoload($class);
  6.  
  7. $config = new CCC_Config;
  8. CCC::loadClass( 'CCC_Config' );
  9. $config1 = new CCC_Config;
  10.  
  11. print '<pre>'; 
  12. print_r( $config ); 
  13. print '</pre>'; 
  14. print '<pre>'; 
  15. print_r( $config1 ); 
  16. print '</pre>';
  17. ?>

class CCC
  1. <?php
  2. public static function loadClass( $class, $reg = true )
  3. {
  4. if ( class_exists( $class ) )
  5. {
  6. echo 'Klasa '.$class.' już załadowana<br />';
  7. return;
  8. }
  9. ?>

efektem działania jest
  1. Klasa CCC_Config już załadowana
  2.  
  3. CCC_Config Object
  4. (
  5. )
  6.  
  7. CCC_Config Object
  8. (
  9. )

Czy to oznacza, że $config1 jest klonem $config ?
Z faktu że dostaję tylko jeden komunikat o tym że klasa jest już załadowana ( tutaj -> CCC::loadClass( 'CCC_Config' ); ) wnioskuję że przy tworzeniu $config1 funkcja __autoload już nie działa a więc nie ma drugiego komunikatu.


--------------------
php 5.1.6
Go to the top of the page
+Quote Post
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


1. Funkcja autoload __autoload() wykonywana jest tylko wtedy kiedy nastepuje próba utworzenia obiektu nieistniejącej klasy. W związku z tym że po pierwszym razie klasa już jest załadowana to później __autoload() nie jest wykonywany.

2. "Czy to oznacza, że $config1 jest klonem $config ?" - Jakim klonem? Obie zmienne są po prostu różnymi obiektami tej samej klasy.
Go to the top of the page
+Quote Post
koala
post
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 4.03.2005

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


Cytat
2. "Czy to oznacza, że $config1 jest klonem $config ?" - Jakim klonem? Obie zmienne są po prostu różnymi obiektami tej samej klasy.

Póki co niewiele jeszcze wiem o PHP5 a że __autoload się nie wykonał po raz drugi więc tak mi się "wypsnęło".

CONFIG przynajmniej u mnie jest ciągle taki sam a więc w klasie Config dobrze by było zastosować singletona czy nie ?

Dziękuję za już i za jeszcze.


--------------------
php 5.1.6
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(koala @ 14.10.2006, 02:58:02 ) *
CONFIG przynajmniej u mnie jest ciągle taki sam a więc w klasie Config dobrze by było zastosować singletona czy nie ?

Tak.
Takie klasy jak Config to niemalże książkowy przykład kiedy warto skorzystać z wzorca Singleton.
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 Aktualny czas: 19.08.2025 - 13:39