Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rejestrowanie statycznej funkcji z innego obiektu w xajaxe
Forum PHP.pl > Forum > PHP
jajcarzd1
Witam

Mam takie pytanie dotyczące obsługi xajxa (jednej z biliotek łączacych PHP z AJAXEM)

Posiadając taką klasę, jesli stworzę jej obiekt to rejestrowana jest funkcja
aa która jest w tym obiekcie.


  1. <?php
  2. class XajaxFunctions
  3. {
  4.  
  5.     public function __construct()
  6.     {
  7.  
  8.      global $xajax;
  9.      $xajax->registerFunction(array('aa',&$this,'aa'));
  10.  
  11.     }
  12.  
  13.  
  14.     public function aa {
  15.  
  16.        .......
  17.  
  18.     }
  19.  
  20. }
  21. ?>


natomiast mam pytanie czy jest możliwość zarejestrowania funkcji statycznej
z innej klasy czyli coś takiego jak poniżej. Te rozwiązania oczywiście nie
działają ale jakby ktoś miał jakąś wskazówkę to byłbym wdzięczny.

  1. <?php
  2. class XajaxFunctions
  3. {
  4.  
  5.     public function __construct()
  6.     {
  7.  
  8.      global $xajax;
  9.          $xajax->registerFunction(array('bb',Klasa,'bb')); /////albo jak niżej
  10.          $xajax->registerFunction(array('bb',Klasa::bb,'bb'));
  11.  
  12.     }
  13.  
  14.  
  15. }
  16.  
  17. class Klasa {
  18.  
  19.    public static function bb {
  20.     .....
  21.   }
  22.  
  23. }
  24. ?>
thm
try:
  1. <?php
  2. $xajax->registerFunction(array('bb', new Klasa,'bb'));
  3. ?>


drugi parametr ma być instancją klasy a nie jej nazwą. nie ma potrzeby żeby bb była statyczna.
jajcarzd1
Cytat(thm @ 23.12.2008, 11:54:05 ) *
drugi parametr ma być instancją klasy a nie jej nazwą. nie ma potrzeby żeby bb była statyczna.


No tak tylko że właśnie nie bardzo mi pasuje tworzyć nowy obiekt tej klasy, dlatego interesowało mnie czy można wywołać jakoś jego statyczną funkcję
thm
If you want to register a static class method, pass in an array like so:

  1. <?php
  2. array("myFunctionName", "myClass", "myMethod")
  3. ?>

to jest kurde cytat z dokumentacji. czytać.
jajcarzd1
Cytat(thm @ 23.12.2008, 12:26:01 ) *
If you want to register a static class method, pass in an array like so:

  1. <?php
  2. array("myFunctionName", "myClass", "myMethod")
  3. ?>

to jest kurde cytat z dokumentacji. czytać.


No właśnie chwilę przed Tobą tez udało mi się to doczytać, ale dzięki serdeczne za pomoc.
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.