Autor Zpráva
czechiaa
Profil
Zdravím,
dělám si webové stránky, s vlastním systémem a nyní se mi naskytl problém.
Když je člověk příhlášený a chce něco postnout do diskuse, tak se s tím zapíší i všechny údaje, ale mám problém v tom, že hodnosti uživatel jsou v číslem (od jedné do devíti) a při zapisování to zapíše číslo a já bych chtěl spíše název přímo té hodnosti (Administrátor, moderátor, atp.)

Potřeboval bych, aby to vypadalo tak, že bych hodnotu mohl poté jednoduše používat .. abych jakože někde napsal
<? echo($prava); ?> a bylo to.
Hodnost se mi vypisuje pod
$session->userlevel

Poradí te mi někdo, už pár dní si s tím nevím rady.

Předem děkuji za reakce
Someone
Profil
$hodnosti = array(1=>"Hodnost lvl 1","Hodnost lvl 2","Hodnost lvl 3"); //atd
echo $hodnosti[$session->userlevel];
czechiaa
Profil
Ano, funguje, naprosto skvělé.
Děkuju ;)
abc
Profil
Osobně to řeším nějak takto:

<?php
function userLevelName($level){
$userLevels = array(
  0 => 'nejnižší user',
  1 => 'o trošku vyšší user',
  ....,
  9 => 'admin',
)
return $userLevels[$level];
}
czechiaa
Profil
A jak bych to dokázal někde ve stránce vypsat ?
(pomocí echa)
abc
Profil
třeba:
<?php
echo userLevelName($session->userlevel);
?>

Prostě té fci předáš parametrem level a ona ti vrátí název.

V podstatě to stejné jako psal Someone pouze obalené ve fci
Joker
Profil
abc:
Přijde mi trochu nevýhoda, že to pole je definované jen uvnitř té funkce a navíc se při každém volání definuje znovu.
Jan Tvrdík
Profil
Joker:
navíc se při každém volání definuje znovu
To lze vyřešit přidáním klíčového slova static.

function userLevelName($level){
  static $userLevels = array(
    0 => 'nejnižší user',
    1 => 'o trošku vyšší user',
    ....,
    9 => 'admin',
  );
  return $userLevels[$level];
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: