Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> czy mozna uzyc $zmienna::metoda() ?
squid
post
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


  1. <?php
  2. $zmienna::metoda()
  3. ?>

czy mozna uzyc czegos takiego?, w zasadzie to zdaje mi sie ze nie bo jak to robie to dostaje kosmiczny komunikat o bledzie ale moze cos robie nie tak?
moze jest jakis sposob zeby "oszukac" php?


--------------------
Jeśli życie to kara to nieźle nabroiłem ;-)
Go to the top of the page
+Quote Post
Ace
post
Post #2





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 9.08.2003
Skąd: Warszawa

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


mysle ze mozna pokombinowac troche z funkcja eval(); ... przy jej uzyciu napewno by sie dalo to wykonac.
Go to the top of the page
+Quote Post
dr_bonzo
post
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%)
-----


Chyba mozna uzyc call_user_func() czy jakos tak.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Nievinny
post
Post #4





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 27.01.2005
Skąd: Białystok

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


@dr_bonzo -> pod warunkiem, że zmienna jest obiektem oczywiście
Wtedy będzie mniej więcej tak:
  1. <?php
  2.  
  3. call_user_func_array( array( $oVar, $sMethod ), array( $mArg1, $mArg2, ... ) );
  4.  
  5. ?>

Pisane z głowy.

A poprzez operator :: nie da się, można tylko do właściwiości statycznych i metod klay.
A więc np: SomeClass::someMethod();

Ten post edytował Nievinny 30.04.2005, 18:07:37


--------------------
Go to the top of the page
+Quote Post
squid
post
Post #5





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


sek w tym ze musze sie odwolywac do metody statycznej po to zeby dostac referencje do obiektu bo tu uzywam singleton'u. Pobieram z konfiguracji baze danych z jaka dziala program i chcialem tworzyc obiekty klasy odpowiedzialej za zapytania do bazy przy pommocy:
$zmienna_z_konfiguracji::getInstance();

ale sie tak chyba nie da, jedyne co mi teraz do glowy przychodzi to zrobic old fashon way czyli uzyc switcha ale jestem otwarty na propozycje winksmiley.jpg

Ten post edytował squid 30.04.2005, 18:13:03


--------------------
Jeśli życie to kara to nieźle nabroiłem ;-)
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #6





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

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


@Nievinny: zgadza sie, po prostu nie pamietalem tego "szczegolu" smile.gif

Ja uzywalem eval() i sprawdzalo sie.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
NuLL
post
Post #7





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


  1. <?php
  2.  
  3. $instancja={$zmienna_z_konfiguracji}::getInstance();
  4.  
  5. ?>


Sprawdz to ale nie jestem pewien. Jeśli nie to eval poprostu.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
Bora
post
Post #8





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

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


Stałą można pobrać tak , a może jest też podobny sposób na metode.
  1. <?php
  2.  
  3. class Test {
  4. const STALA = 'BLABLABLA';
  5. } 
  6.  
  7. $class = 'Test' ;
  8. echo &#092;"$class::STALA\" . constant(\"$class::STALA\");
  9.  
  10. ?>
Go to the top of the page
+Quote Post
squid
post
Post #9





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


Cytat(NuLL @ 2005-05-01 14:15:20)
  1. <?php
  2.  
  3. $instancja={$zmienna_z_konfiguracji}::getInstance();
  4.  
  5. ?>


Sprawdz to ale nie jestem pewien. Jeśli nie to eval poprostu.

wtedy mam:
Parse error: syntax error, unexpected '{'


--------------------
Jeśli życie to kara to nieźle nabroiłem ;-)
Go to the top of the page
+Quote Post
ebe
post
Post #10





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 23.01.2004

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


  1. <?php
  2.  
  3. //$page = FrontController::getInstance(); to to samo co:
  4.  
  5. $nazwaKlasy = 'FrontController';
  6. $instancja = call_user_func(array($nazwaKlasy, 'getInstance'));
  7.  
  8. ?>


Mi to działa...

Ten post edytował ebe 1.05.2005, 14:55:24


--------------------
Słyszałem, że macie tutaj jakieś takie php... fajne to, dobre to jest?
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 - 09:59