Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Callback na funkcjach klasowych
tua1
post 18.02.2010, 16:05:06
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 23.10.2009

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


Witam

Dwie metody jedna ma służyć tylko przy sortowaniu, jednak otrzymuje błąd:

  1. usort() expects parameter 2 to be a valid callback, function 'cmp' not found or invalid function name


Próbowałem na różne sposoby na przykład '$this->cmp'....

Fragment kodu klasy:

  1. public function performShuffling($method) {
  2.  
  3. switch ($method) {
  4. case ($method == TagCloud::SHUFFLE_RANDOM):
  5. shuffle($this->tags);
  6. break;
  7. case ($method == TagCloud::SHUFFLE_BY_ENTRIES):
  8. usort($this->tags, 'cmp');
  9. break;
  10. default: shuffle($this->tags);
  11.  
  12. }
  13.  
  14. return $this;
  15. }
  16.  
  17. public function cmp($a, $b) {
  18. if ($a['entries'] == $b['entries'])
  19. return 0;
  20. return ($a['entries'] < $b['entries']) ? -1 : 1;
  21. }
  22.  

w
Druga sprawa jest taka, że tabela jak multi, a ja chcę porównywać tylko po jednym polu z każdej tabeli, jak widać kod funkcji cmp() jest zły, choć tego jeszcze nie mogę sprawdzić z powodu powyższego błedu.
Pomoże ktoś?

Ten post edytował tua1 18.02.2010, 16:15:08
Go to the top of the page
+Quote Post
mls
post 18.02.2010, 16:14:36
Post #2





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


Ech, podstawy...
  1. usort($this->tags, array($this, 'cmp'));


--------------------
Go to the top of the page
+Quote Post
tua1
post 18.02.2010, 16:21:26
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 23.10.2009

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


Po to jest przedszkole....

Ten post edytował tua1 18.02.2010, 16:21:55
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: 14.08.2025 - 05:20