Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Singleton i dziedziczenie
relaxant
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 9.08.2004
Skąd: Bielsko-Biała

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


Witam,
Wiekszość ludzi piszacych tutaj rozumie chyba jak działa Singleton. Do dzis myslalem ze tez to rozumiem. Czy moze mi ktos wytlumaczyc dlaczego ten kod nizej działa?

Mam kod index.php
  1. <?php
  2. require_once('lib/core/DB.class.php');
  3. $kk = new DB();
  4. $kk->AA();
  5. ?>


DB.class.php:
  1. <?php
  2. class DB extends mysqli{
  3. private static $instance;
  4.  
  5. private function __construct($hostname=DB_HOST, $username=DB_USER, $password=DB_PASSWORD, $database=DB_DATABASE){
  6. $hostname = ($hostname=="")?DB_HOST:$hostname;
  7. $username = ($username=="")?DB_USER:$username;
  8. $password = ($password=="")?DB_PASSWORD:$password;
  9. $database = ($database=="")?DB_DATABASE:$database;
  10.  
  11. //parent::__construct($hostname, $username, $password, $database);
  12. }
  13.  
  14. public static function getInstance() {
  15. if (!isset(self::$instance)) {
  16. self::$instance = new DB();
  17. } 
  18. return self::$instance;
  19. }
  20.  
  21. public function __clone() {
  22. trigger_error('Clone is not allowed.', E_USER_ERROR);
  23. }
  24.  
  25. public function __destruct() {
  26. print "DESTRUCT DB <br>";
  27. }
  28.  
  29. public function AA() {
  30. print "text";
  31. }
  32. }
  33. ?>


I to działa!! Pomimo tego ze konstuktor DB jest prywatny!! Jezeli nie dziedzicze po mysqli wyskakuje blad (reakcja prawidlowa).

testuje na php Version 5.1.2-1
Go to the top of the page
+Quote Post

Posty w temacie
- relaxant   Singleton i dziedziczenie   3.07.2006, 12:13:44
- - mariuszn3   Pierwsza sprawa, to pewnie nie dopatrzenie php. Po...   3.07.2006, 12:47:11
- - relaxant   Tez tak myslalem ze pewnie jest wykonywany publicz...   3.07.2006, 13:05:35
- - mariuszn3   A dlaczego miałbyś nie mieć dostępu do AA? To, że ...   3.07.2006, 13:08:37
- - Cysiaczek   Jeśli posiadasz wersję php 5.1.x, to cho...   3.07.2006, 13:12:18
|- - mariuszn3   Cytat(Cysiaczek @ 3.07.2006, 12:12 ) Jeśl...   3.07.2006, 13:56:18
- - relaxant   to chcesz powiedzić, że te wszystkie implementacje...   3.07.2006, 13:16:28
- - Cysiaczek   Ideą singletona jest to, że w zakresie całej aplik...   3.07.2006, 13:25:19
- - bigZbig   Ale skoro konstruktor zawsze jest publiczny to o k...   3.07.2006, 13:35:19
- - nospor   CytatAle skoro konstruktor zawsze jest publiczny t...   3.07.2006, 13:38:48
- - Cysiaczek   Spokojnie. Nie jest tak źle. Wszystkie inne s...   3.07.2006, 13:40:03
- - bigZbig   Oj chlopaki - wiem, ze dla pozostalych metod i wla...   3.07.2006, 14:01:22
- - Cysiaczek   Zaraz poszukam i wskażę źródło... loading   3.07.2006, 14:02:01
|- - mariuszn3   Cytat(Cysiaczek @ 3.07.2006, 13:02 ) Zara...   3.07.2006, 14:08:05
- - Cysiaczek   http://pl.php.net/distributions/manual/php...z#lan...   3.07.2006, 14:10:31
|- - mariuszn3   Cytat(Cysiaczek @ 3.07.2006, 13:10 ) http...   3.07.2006, 14:19:33
- - relaxant   No i spoko " // Contructors must be public...   3.07.2006, 14:26:57
- - ActivePlayer   jako ze nie mam dostępu do php5 tutaj, zadam pytan...   3.07.2006, 15:37:43
- - Cysiaczek   Nie chcę się o to kłócic. Jak tylko...   3.07.2006, 15:42:27
- - NuLL   CytatJeśłi się mylę, to oczywi...   3.07.2006, 17:58:16
- - relaxant   Ok, od wczoraj z cvs'a na php.net można ściągn...   6.07.2006, 13:39:02
- - NuLL   O jakim bledzie mowisz   6.07.2006, 22:05:52
- - relaxant   Patrz - 1 wpis, to co mówiłeś Cytat@AP - rezult...   7.07.2006, 12:35:08


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: 29.09.2025 - 16:28