Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Dynamiczne wywołanie statycznej metody
Forum PHP.pl > Forum > Przedszkole
UDAT
Jak wywołać metodę statyczną z klasy abstrakcyjnej mając jej nazwę w zmiennej?

  1. <?php
  2. $className :: method ();
  3. ?>

daje wynik:
Kod
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM


Natomiast klasa ReflectionMethod ma metodę invokeArgs jednak wymaga ona podania obiektu.
Także nic nie daje:
  1. <?php
  2. $className = 'foo::bar';
  3. ?>
nospor
http://pl.php.net/manual/pl/function.call-user-func.php

Przenosze na przedszkole
dr_bonzo
A czemu nazwa klasy (ktorej metoda ma byc wywolana) ma zalezec od wartosci zmiennej?
Wyglada na to ze przyda ci sie polimorfizm -- utworz podklasy z roznymi implemetacjami metody "method()" i wywoluj ja na obiekcie.

http://hanuska.blogspot.com/2006/08/swich-...-smell-and.html
co prawda kod w javie ale spojrz na problem (co prawda nie masz switcha, ale funkcja ktora wywolasz jest zalezna od wartosci $className) i rozwiazanie

----
edit: chociaz to co robisz to "prawie jak" polimorfizm, tylko ze stosuje sie go dla obiektow a nie klas.
W rubym by to przeszlo -- nazwa klasy tez jest obiektem + duck typing
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.