Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przypisywanie przedziałom wartości słownej - tablica
pawdoh
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.12.2010

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


Witam mam następujący problem otóż, pobieram z bazy danych wartość będącą liczbą i teraz mam problem ponieważ potrzebuję to przypisać mam kod

  1. <?php
  2. $ranga = (
  3. range(0, 3999) => 'Początkujący',
  4. range(4000, 7999) => 'Młodzian',
  5. range(8000, 11999) => 'Doświadczony',
  6. range(12000, 20000) => 'Weteran',
  7. )
  8. ?>

następnie to przypisuje w pliku do którego załączam tą tablice, $ranga[$r[rank]]. I po tym właśnie zwraca mi błąd

Warning: Illegal offset type in ... on line 3,4,5,6

Bardzo bym prosił o pomoc gdyż jestem początkującym programistą i nie wiem za bardzo gdzie zrobiłem błąd. Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@thek: Ty to się potrafisz rozpisać.

1. Zapewne przekroczenie rangi "weteran" jest niemożliwe. Zresztą... zawsze, można zamienić znak mniejszości na większości i porównywać minimalny zakres rangi, bo jak się domyślam, ów "weteran" to maksimum.
2. Do wywalania błędów używaj wyjątków, a nie "flagi" w postaci zwrócenia false - to jest chyba jedna z bardziej "błędotwórczych" praktyk.
3. Żeby się już nikt nie czepiał:
  1. function getRange($userRange) {
  2. static $ranges = array(
  3. 'Początkujący' => array(0, 3999),
  4. 'Doświadczony' => array(4000, 7999),
  5. 'Młodzian' => array(8000, 11999),
  6. 'Weteran' => array(12000, 20000)
  7. );
  8.  
  9. foreach ($ranges as $label => $range) {
  10. if ($userRange >= $range[0] && $userRange <= $range[1]) {
  11. return $label;
  12. }
  13. }
  14.  
  15. throw new OutOfRangeException("Value '$userRange' does not match any range.");
  16. }


Ten post edytował Crozin 3.01.2011, 21:58:06
Powód edycji: [thek]: poprawiłem Citablicę statyczną boś mialsamych weteranów :)
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.09.2025 - 11:06