|
| 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
| |
|
|