/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Forsøger at forstå pointen med isset()
Fra : Philips


Dato : 01-06-05 22:36

Når jeg skal undersøge om en given variabel er postet plejer jeg at gøre:

if ($_REQUEST ["Variable"]) DO_STUFF();

Men man kan jo også:

if (isset ($_REQUEST ["Variable"])) DO_STUFF();

Hvad er fordelen med den sidste? Eller rettere, i hvilke reproducerbare
tilfælde fejler den første løsning?

P



 
 
Jacob Atzen (01-06-2005)
Kommentar
Fra : Jacob Atzen


Dato : 01-06-05 22:57

On 2005-06-01, Philips <a@b.c> wrote:
> Når jeg skal undersøge om en given variabel er postet plejer jeg at gøre:
>
> if ($_REQUEST ["Variable"]) DO_STUFF();
>
> Men man kan jo også:
>
> if (isset ($_REQUEST ["Variable"])) DO_STUFF();
>
> Hvad er fordelen med den sidste? Eller rettere, i hvilke reproducerbare
> tilfælde fejler den første løsning?

$_REQUEST["VARIABLE"] = 0

--
Med venlig hilsen
- Jacob Atzen

Philips (01-06-2005)
Kommentar
Fra : Philips


Dato : 01-06-05 23:19


"Jacob Atzen" <jacob@aub.dk> wrote in message
news:slrnd9sbq3.ddl.jacob@tank.aub.dk...
> On 2005-06-01, Philips <a@b.c> wrote:
> > Når jeg skal undersøge om en given variabel er postet plejer jeg at
gøre:
> >
> > if ($_REQUEST ["Variable"]) DO_STUFF();
> >
> > Men man kan jo også:
> >
> > if (isset ($_REQUEST ["Variable"])) DO_STUFF();
> >
> > Hvad er fordelen med den sidste? Eller rettere, i hvilke reproducerbare
> > tilfælde fejler den første løsning?
>
> $_REQUEST["VARIABLE"] = 0

Ah ja, men isset($_REQUEST["VARIABLE"]) "fejler" ved:

test.php?VARIABLE=

som den nu ser som en sat værdi, selvom den i bund og grund er tom...

Er dette mere sikkert:

if ($_REQUEST ["Variable"] != "") DO_STUFF();

P





Jacob Atzen (01-06-2005)
Kommentar
Fra : Jacob Atzen


Dato : 01-06-05 23:30

On 2005-06-01, Philips <a@b.c> wrote:
> Ah ja, men isset($_REQUEST["VARIABLE"]) "fejler" ved:
>
> test.php?VARIABLE=
>
> som den nu ser som en sat værdi, selvom den i bund og grund er tom...

Selvom den er tom er den stadig sat. Det du undersøger er, om der er
defineret en indgang i $_REQUEST, der hedder 'VARIABEL' (og at denne
ikke er NULL, pga. isset()'s lidt uheldige semantik).

> Er dette mere sikkert:
>
> if ($_REQUEST ["Variable"] != "") DO_STUFF();

Det kommer an på hvad du vil. Hvis du vil teste om en værdi er sat, så
er isset() et godt bud. Hvis det er noget andet, du vil undersøge er
isset() sikkert ikke smart at bruge.

Det lyder som om du gerne vil noget i retning af:

if(isset($_REQUEST['Variable']) && strlen($_REQUEST['Variable']) > 0)...

--
Med venlig hilsen
- Jacob Atzen

Mikkel Z. Herold (02-06-2005)
Kommentar
Fra : Mikkel Z. Herold


Dato : 02-06-05 10:19

On 02-06-2005 00:29 Jacob Atzen wrote:
> Det lyder som om du gerne vil noget i retning af:
>
> if(isset($_REQUEST['Variable']) && strlen($_REQUEST['Variable']) > 0)...

Hvorfor ikke bare

if(!empty($_REQUEST['Variable']))... ?

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

http://www.mzh.dk

Benny Nissen (02-06-2005)
Kommentar
Fra : Benny Nissen


Dato : 02-06-05 10:29

Mikkel Z. Herold wrote:
> On 02-06-2005 00:29 Jacob Atzen wrote:
> > Det lyder som om du gerne vil noget i retning af:
>
>>
>> if(isset($_REQUEST['Variable']) && strlen($_REQUEST['Variable']) > 0)...
>
>
> Hvorfor ikke bare
>
> if(!empty($_REQUEST['Variable']))... ?
>
> Mikkel

empty($var) vil give en Notice, hvis variablen ikke er sat. Det vil
isset($var) ikke (så vidt jeg husker).

--
Benny Nissen

Jacob Atzen (02-06-2005)
Kommentar
Fra : Jacob Atzen


Dato : 02-06-05 10:36

On 2005-06-02, Mikkel Z. Herold <mikkel@[remove_this]> wrote:
> On 02-06-2005 00:29 Jacob Atzen wrote:
> > Det lyder som om du gerne vil noget i retning af:
>>
>> if(isset($_REQUEST['Variable']) && strlen($_REQUEST['Variable']) > 0)...
>
> Hvorfor ikke bare
>
> if(!empty($_REQUEST['Variable']))... ?

Fordi empty(0) == true.

--
Med venlig hilsen
- Jacob Atzen

Kasper Johansen (03-06-2005)
Kommentar
Fra : Kasper Johansen


Dato : 03-06-05 21:37

"Philips" <a@b.c> skrev i en meddelelse
news:429e2a56$0$18649$14726298@news.sunsite.dk...
> Når jeg skal undersøge om en given variabel er postet plejer jeg at gøre:
>
> if ($_REQUEST ["Variable"]) DO_STUFF();
>
> Men man kan jo også:
>
> if (isset ($_REQUEST ["Variable"])) DO_STUFF();

Prøv evt dette hvis du vil være 100% sikker på der så står noget i en
variabel.


if ($_REQUEST["Variable"] !== ""){
DO_STUFF();
}

Jeg bruge 2 x "=".
Du kan også bruge === (3 x "=").


--
Mvh Kasper Johansen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste