Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Uzyskiwanie referencji z nazwy
Forum PHP.pl > Forum > PHP
e-Gandalf
Dwa pytanka. (oczywiscie php5)
1) posiadam zmienna $n="Ble"; i teraz chce sie odwolac do metody statycznej klasy Ble. Jak to zrobic? ($$n)::metoda() nie dziala :/

2) Zalozmy, ze chce wprowadzic singletony. teoretycznie banal:

Kod
class Test {

  static private $instance = null;



  private function __construct(){}

  static public function getService () {

    if (Test::$instance == null) {

      Test::$instance = new Test();

    }

    return Test::$instance;

  }

}


Ale zalozmy, ze chcialbym miec wiele singletonow i bez sensu wydaje mi sie implementowanie tego fragmentu do kazdego z osobna. Zatem chcialbym utworzyc klase abstrakcyjna z ktorej dziedziczylby kazdy singleton:

Kod
abstract class AbstractService {

  static private $instance = null;



  static public function getService () {

    // co tutaj?

  }

}


Problem polega na tym, ze nie wiem jak uzyskac referencje do klasy na rzecz ktorej wywolywana jest metoda getService :/ Jakies pomysly?

Bo na razie w efekcie zamiast klasycznej obslugi musialem wprowadzic osobna klase ktorej obiekt kontroluje tworzenie klas i zwraca referencje do nich :/[/quote]
borec
[php:1:9251760e30]<?php
${$n}::method();
?>[/php:1:9251760e30]
:?:
e-Gandalf
Wynik:

Kod
Parse error: parse error, unexpected T_PAAMAYIM_NEKUDOTAYIM
scanner
Offtopic:
Cytat
PAAMAYIM_NEKUDOTAYIM
Zawsze się zastanawiąłem co to znaczy...
borec
hehe tongue.gif

moze po prostu

[php:1:70b69fba12]<?php
$$n::method();
?>[/php:1:70b69fba12]
e-Gandalf
ten sam rezultat :/
Ozzy
[php:1:30f071af68]<?php
$n = 'className';
call_user_func(array($n, 'methodName'),'arg1', 'arg2');
?>[/php:1:30f071af68]

?
e-Gandalf
o. to dziala. brzydko wyglada, ale dziala smile.gif
zalew
[php:1:6b4b058e13]<?php
${$n} = .....
?>[/php:1:6b4b058e13]

?
mls
Cytat
Scanner: PAAMAYIM_NEKUDOTAYIM = "->"

Raczej "::" -- http://pl2.php.net/tokens oraz http://pl2.php.net/manual/pl/keyword.paama...nekudotayim.php
scanner
Cytat
Cytat
Scanner: PAAMAYIM_NEKUDOTAYIM = "->"
Raczej "::" -- http://pl2.php.net/tokens orazhttp://pl2.php.net/manual/pl/keyword.paamayim-nekudotayim.php
Bardziej mi chodziło o to, w jakim to języku. Podejrzewam, ze to z węgierska (przynajmnej tak brzmi)... Ot zwykła ciekawosć
Draugfor
Tak, to wegierski smile.gif
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.