Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Hermetyzacja i singleton
rotkiwer
post 16.03.2005, 18:11:52
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 16.03.2005

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


Witam,
Natknąłem się na dość dziwny problem. Chce stworzyć obiekt klasy(a właściwie pobrać referencje - singleton), której nazwy nie znam. Nazwa ta jest zapisana w pliku konfiguracyjnym. Gdybym chciał stworzyć nową instancje klasy(a nie pobrać referencję) problem rozwiązałby kod:
  1. <?php
  2. $objectX = new $className();
  3. ?>

Jednak klasa, do której chcę się dostać jest singletonem.
Dokonując kilku zmian i wykorzystując operator wyłuskania( :: ) kod powinien wyglądać tak:
  1. <?php
  2. $objectX = $className::__singleton();
  3. ?>

Niestety, php wypluwa niezrozumiały błąd o treści ‘Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in (…)’

Będe wdzięczny za wszelkie podpowiedzi i sugestie związane z tematem.
Go to the top of the page
+Quote Post
rogrog
post 16.03.2005, 18:22:41
Post #2





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


http://www.php.net/manual/pl/tokens.php


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post 16.03.2005, 18:30:35
Post #3





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

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


1. T_PAAMAYIM_NEKUDOTAYIM to jst '::' czworkropek w jakimstamjezyku
2. $objectX = $className::__singleton(); << takie cos nie przejdzie
  1. <?php
  2. eval( '$objectX = ' . $className . '::__singleton();');
  3. ?>


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
DeyV
post 16.03.2005, 18:31:59
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Cytat(manual)
call_user_func --  Call a user function given by the first parameter
Description
mixed call_user_func " title="Zobacz w manualu PHP" target="_manual( callback function [, mixed parameter [, mixed ...]])


Object methods may also be invoked statically using this function by passing array($objectname, $methodname) to the function parameter.

  1. <?php
  2. class myclass {
  3. function say_hello() 
  4. {
  5. echo&#092;"Hello!n\";
  6. }
  7. }
  8.  
  9. $classname =&#092;"myclass\";
  10.  
  11. call_user_func(array($classname, 'say_hello'));
  12. ?>


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
rogrog
post 16.03.2005, 18:37:55
Post #5





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


Cytat(dr_bonzo @ 2005-03-16 19:30:35)
T_PAAMAYIM_NEKUDOTAYIM to jst '::' czworkropek w jakimstamjezyku

po hebrajsku AFAIR


--------------------
Go to the top of the page
+Quote Post
ms.
post 19.05.2005, 11:11:33
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 10.05.2004
Skąd: Krakuff

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


Cytat(rogrog @ 2005-03-16 18:37:55)
Cytat(dr_bonzo @ 2005-03-16 19:30:35)
T_PAAMAYIM_NEKUDOTAYIM to jst '::' czworkropek w jakimstamjezyku

po hebrajsku AFAIR

heh - no w końcu php robią w Izraelu :D
Cytat
Zend Technologies, Ltd.
7 Abba Hillel Street
Silver Building
Ramat Gan, Israel 52136


--------------------
...enjoy the silence...
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: 19.06.2025 - 21:37