[ zgas @ 19.06.2007. 10:58 ] @
Postovani,

imam promenljivu koja treba da ima vrednosti samo 1,2,3,4 ili 5.

Ne zelim da koristim is_integer funkciju jer ona ne prepozna ove vrednosti ako su upisane preko forme - za nju su to onda tekst vrednosti. Ne znam da koristim regularne izraze i funkcije (ne razumem ih) a pretpostavljam da one to mugu... Kako?

Hvala.
[ dakipro @ 19.06.2007. 11:03 ] @
CIni mi se da nesto veoma gresis. Napisi molim te cemu ovo sluzi i nacin upotrebe.
Zasta bi koristio is_integer ? ako je promenjiva string, mozes je striktno definisati kao intiger: $promenjiva = (int) $_POST['text_polje'];
[ flylord @ 19.06.2007. 11:07 ] @
a mozes da koristis i is_numeric() , pa onda proveru da li je jednaka nekoj od zadatih vrednosti
[ Zmaj @ 19.06.2007. 11:56 ] @
Code:

if(is_numeric($num) && ($prom >= 1) && ($prom <= 5)) {
  //obrada
}
else {
  //greska: prom. nije u granicama od 1 do 5
}


a php ce ti posle ovo svakako pretvoriti u integer, ako ga koristis u nekim izrazima.
Postoji milion nacina da testiras da li je prom. integer, i da li je u granicama
[ beep @ 19.06.2007. 12:51 ] @
npr.
Code:
if (ereg ("(^[1-5]{1}$)",$promenjiva))    echo 'true';
   else echo 'false';
[ zgas @ 19.06.2007. 13:00 ] @
Hvala beep, to je to.

Interesuje me samo da li znate je ereg mnogo sporiji od if ili case uslova?

npr:

Code:

if($do_dana!=0 AND $do_dana!=1 AND $do_dana!=2 AND $do_dana!=3 AND $do_dana!=4 AND $do_dana!=5 AND $do_dana!=6)...
[ djordje @ 19.06.2007. 14:10 ] @
koji ce ti ovo:
Code:
if($do_dana!=0 AND $do_dana!=1 AND $do_dana!=2 AND $do_dana!=3 AND $do_dana!=4 AND $do_dana!=5 AND $do_dana!=6)...


kad je elegantnije mnogo ovo:
Code:
if(is_numeric($num) && ($prom >= 1) && ($prom <= 5)) {
  //obrada
}
else {
  //greska: prom. nije u granicama od 1 do 5
}


Sve je brze od regularnih izraza
[ mika @ 19.06.2007. 14:43 ] @
Xixi, može i:

Code:

$correct = is_numeric($num)?(($num>=1 && $num<=5)?true:false):false;


... ali je najelegantnije rešenje ono koje je mr. beep predložio. Ne treba da razmišljaš da li je brže ili ne, osim ako ti se taj kod ne vrti u petlji milion puta.
[ zgas @ 19.06.2007. 15:20 ] @
>
Beep je resio, a ovo sto ste vi predlozili ako se ne varam ne odgovara,
jer 'is_numeric' pusta i decimalne brojeve, a meni trebaju samo celi.
[ djordje @ 19.06.2007. 15:56 ] @
Tacno, ne odgovara, ali ovo odgovara

http://www.php.net/manual/en/function.ctype-digit.php
[ jablan @ 19.06.2007. 16:32 ] @
Citat:
beep: npr.
Code:
"(^[1-5]{1}$)"

{1} ti je višak. ;)