Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: class_exists
Forum PHP.pl > Forum > PHP
koala
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.
mike
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.
koala
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.
mike
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.