Gå til innhold

Validere $_GET / $_POST


Anbefalte innlegg

Videoannonse
Annonse
Det du vil bruke er nok is_set()

is_set? Jeg tror ikke jeg kan huske sist man kunne skrive det med understrek, fungerer det i det hele tatt i noen versjoner? Trådstarter spør for øvrig om indekser og hvorvidt de er satt, ikke om variabelen er satt. Enorm forskjell. Er man ute etter å sjekke om en variabel er satt, så bruker man selvfølgelig isset, men dersom man er ute etter en indeks, så er array_key_exists, som navnet tilsier, veien å gå. Noe annet blir rett og slett homofilt og ved stor nok grad kan det smitte over på alle som titter på koden. :scared::fun:

Endret av Jonas
Lenke til kommentar

Dersom man vil sjekke om verdien faktisk er lik NULL, så er det måten, ja. Men når trådstarter ønsker å sjekke om en POST-variabel er blitt sendt, så er han egentlig ute etter å finne ut om array-indeksen eksisterer, hvilket man gjør med array_key_exists.

Endret av Jonas
Lenke til kommentar

Du skulle vel ønske jeg var det ;) ;) ;)

 

Greit nok at array_key_exists() er mer riktig, men isset() er ikke feil den heller. Kortere å skrive er den også. Og til og med manualen tillater å bruke den for det:

 

"This also work for elements in arrays: "

etterfulgt av et eksempel.

-http://no.php.net/isset:

Lenke til kommentar

Det er en fundamental forskjell mellom å fungere og å være tillatt. Det er jo bakgrunnen for hele diskusjonen. Vi har allerede konstatert at det fungerer. Og kortere å skrive!? Oi oi oi, hadde det bare vært et argument. Du vet, gutta som driver i perl ville tatt deg imot med åpne armer. Jeg aner tendenser, her.

Lenke til kommentar

Det er en vesentlig forskjell på array_key_exists og isset, nemlig at isset også ser på verdien, følgelig vil resultatet bli som følger:

<?php
$array = array(NULL, 'test', 123);
var_dump(isset($array[0])); // bool(false)
var_dump(array_key_exists(0, $array)); // bool(true)

 

Som vi ser returnerer isset() FALSE når verdien er NULL.

 

Det viser seg også at isset() er en del raskere, men dette merkes knapt og det skal man ikke legge så altfor mye vekt på. Det er gjerne (les: alltid) andre steder at optimalisering bør gjøres.

Lenke til kommentar

Gud hjelpe meg. Går det an å krangle om noe mer uvesentlig og samtidig klare å kalle noen for homofil (hvilket i seg selv er støtende)? Huff, nesten skammelig å lese det her :no: I tillegg til det som er nevnt i innlegget over bør det vel også nevnes at isset er en «language construct», mens array_key_exists ikke er det. Betyr ikke så skrekkelig mye i praksis for de fleste annet enn at isset relativt sett er langt raskere enn array_key_exists (selv om det overhode ikke har noe å si i praksis siden vi snakk om kanskje 2-3µs vs. 0.2-0.3µs). Grunnen til dette er at isset er en grunnstein i PHP-parseren og kan ikke brytes ned til noe mindre. Det er rett og slett en egen operasjon på lik linje med +, -, *, /, echo, print etc. som sannsynligvis er skrevet i ren, optimalisert C (derav hastigheten). Det betyr også at array_key_exists i teorien kan benytte isset for å få utført det den skal ...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...