Gå til innhold

Isset. hva er det ?


Anbefalte innlegg

Skrevet
blueeagle:

 

hvorfor ikke bare:

if($_GET['VisMer']){
 // do my shit;
}

 

?

Fordi hvis urlen ikke inneholder VisMer= så skal php generere en feil 'Index not found' feilmelding.

Videoannonse
Annonse
Skrevet

Så sleng på "else { }" da og skriv feilmeldingen der.

 

Jeg tror vi snakker forbi hverandre, men det er bare tull og først sjekke isset() og deretter !isempty() når en ikke-satt variabel, akkurat som en tom variabel ("" eller 0) evaluerers til false.

Skrevet

jeg vet ikke hva du har programmert på sida di, men å sjekke isset() og !isempty() i samme test kanselerer hverandre, du kan like gjerne evaluere uttrykket du har, som jeg foreslår. logisk er det helt identiske tester.

 

om du trenger å sjekke om id'en faktisk finns eller ikke, må du gjøre uavhengig av dette uansett.

 

hvis du vil terminere skriptet, er det bare å legge inn "exit;"

Skrevet
blueeagle:

hvorfor ikke bare:

if($_GET['VisMer']){
 // do my shit;
}

?

Fordi hvis urlen ikke inneholder VisMer= så skal php generere en feil 'Index not found' feilmelding.

Index not found er en unødvendig feilmelding som er default i php.ini.

 

Skift

error_reporting = E_ALL & E_NOTICE

 

med

 

error_reporting = E_ERROR

 

 

Sett en ; foran de feilmeldingstypene du ikke bruker.

Skrevet
jeg vet ikke hva du har programmert på sida di, men å sjekke isset() og !isempty() i samme test kanselerer hverandre, du kan like gjerne evaluere uttrykket du har, som jeg foreslår. logisk er det helt identiske tester.

(mi utheving)

 

Dei er ikkje logisk identiske eller ekvivalente. Ein variabel kan vere satt, men tom. Då vil isset() returnere sant, medan empty() vil returnere sant, og !empty() usant. Dei er dermed ikkje logiske motsetningar av kvarandre.

Skrevet

Hvis du ser lenger oppe i tråden, ser du at vi snakker om:

 

if( isset($var) && !isempty($var) )

 

mot

 

if($var)

 

Det er også det jeg sier i meldinga du siterer meg på: du kan like gjerne evaluere uttrykket du har (underforstått: "... som å sjekke om variabelen er satt og ikke tom"). Jeg sier at dette logisk vil gi samme resultat og er ekvivalente tester.

Skrevet

Jeg har ikke snakket om if ((isset($var)&&(!empty($var))) men derimot if ((isset($_GET['var'])&&(!empty($$_GET['var']))). Dette fordi at "index not found" vil oppstå hvis du prøver if($_GET['var']) og var ikke er i URLen.

Skrevet
Når jeg sjekker vaiabler fra url så bruker jeg alltid denne koden

<?php
if((isset($_GET['VisMer']))&&(!empty($_GET['VisMer'])))
{
  //Vis mere her! :)
}
?>

 

Dette er fordi at den da sjekker om variabelen er satt og at den ikke er tom

Hvis du bare bruker isset() så kan variabelen være tom.

Hvis du bare bruker !empty() så kan du oppleve at PHP klager på at indeksen ikke finnes fordi det ikke står Variabelnavn= i urlen i det heletatt.

Her sier du det jeg stiller meg tvilende om.

 

Jeg har ikke vært borti noen php version som klager på at en array indeks ikke finnes, jeg prøvde nettopp med min egen server, følgende kode:

 

?php
if($_GET['VisMer'])
{
 print "Ting er OK";
}
?>

 

Fungerte helt fint, svarte OK hvis den fikk en sann variabel i "...?VisMer=whatever"

I alle andre tilfeller sa den ingenting, og klaget aldri.

 

Hvis det er noen ini-setting som gjør den følsom for manglende array keys, så tar jeg dette tilbake.

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