v5.dk logo
Kom ind og besøg vores Discord Chat-community
Bliv medlem her eller læs mere om Discord her
Kærlighed kan godt købes for penge
- vi elsker nemlig vores kunder :-)

Mere info Køb nu

Premium på v5.dk
v5.dk logo  v5.dk e-learning
Log på med Facebook
  • Log ind på v5.dk
  • Opret bruger
  • Log ind
  • v5.dk Premium
  • v5.dk Premium
  • Hvad siger vores kunder?
  • E-læring for begyndere
  • icon for WordPress 4 e-learning WordPress 4
  • icon for Office 365 e-learning Office 365
  • icon for Microsoft Word e-learning Microsoft Word
  • Bloggen for alle
  • E-læring for nørder
  • icon for PHP-programmering e-learning PHP-programmering
  • icon for iOS Programmering e-learning iOS Programmering
  • icon for Linux Server e-learning Linux Server
  • Bloggen for nørder
  • Arkiverede videoer
  • Fællesskab
  • Forum
  • Idéer og ønsker
  • Markedspladsen
  • v5.dk Premium
  • Gratis webhotel
  • Cloud-servere
  • Om v5.dk
  • Søg på v5.dk
  • Om v5.dk ApS
    • Om virksomheden
    • RSS-feeds og tjenester
    • Driftsmeddelelser
    • Presse-kit
    • Ledige jobs
    • Social Netværk
      • Facebook
      • Twitter
      • Instagram
    • Alt det andet
      • Forretningsbetingelser
      • Ophavsret og Copyright
  • Kontakt kundeservice
  • FAQ og Hjælp
    • Premium og abb.
    • Videoer og Afspiller
    • Forum og Points
    • Cloud-servers
  • Partner/Virksomhed
  • Partner-kanal
v5.dk logo mobile
  • Menu
  • Opret bruger

Hvorfor isset før check af _GET variabel?

  • v5.dk
  • Forum
  • PHP-programmering
  • Hvorfor isset før check af _GET variabel?
  • Sidevisninger: 2547 har set dette indlæg
Besvar #0Spørgsmål oprettet af @rasmusmax-petersen | 145 points
15 points ude 2 indlæg 6 år siden Spørgsmål besvaret
avatar
 

Hejsa

I videoen "Valider vores Return-data fra vores MySQL-kald", laver vi et check på om en person eksisterer i vores database, og returnerer en fejlbesked hvis det er tilfældet.

Jeg prøver at pause videoerne løbende, og udføre den kode der beskrives, for derefter først at se svaret her, og i det her tilfælde endte jeg med:

<?php if ($_GET['fejl'] == "ingenperson") { ?>
        <div class='alert alert-danger'>Denne person eksisterer ikke...</div>
<?php } ?>

Det "rigtige" var i den her situation: 

<?php if (isset($_GET['fejl'] && $_GET['fejl'] == "ingenperson") { ?>
        <div class='alert alert-danger'>Denne person eksisterer ikke...</div>
<?php } ?>

Men jeg synes ikke rigtigt det bliver forklaret, hvorfor isset() checket er smart at bruge?

Er det udelukkende fordi det er "god kodestil" at checke om en variabel er sat, før man checker indholdet af den, eller er der en dybere mening (det er der med garanti ;-))

Tak for de rigtigt gode videoer. Jeg har slugt 2½ kapitel på få dage, og føler jeg er bedre inde i PHP end jeg nogensinde har været før. Babysteps selvfølgelig... Men ikke desto mindre skridt i den rigtige retning!

Dette svar er accepteret af OP og tildelt 15 points
avatar
 
Besvar#1 @dhh Admin svarede for 6 år siden

Hej rasmusmax-petersen @rasmusmax-petersen   

Først og fremmest, fantastisk at høre at du finder vores videoer gode. Det varmer altid at høre.

Og nu til dit spørgsmål omkring isset() funktionen. Kort fortalt er det god praksis. Det har dog også den ekstra funktion at det tjekker om din variabel ikke kun er sat, men at den faktisk også har noget indhold og ikke er "tom". (NULL.)

Ved at tjekke på den her måde, undgår man også at PHP kommer op med fejlbeskeder hvis en variabel. ($_GET['fejl'} i dit tilfælde.) Ikke skulle eksistere til at begynde med, den ville ganske simpelt bare springe det over og gå videre med hvad koden nu prøver på. (Det giver jo ingen mening at lave tjek på en variabel, som ikke eksistere til at begynde med - eller som er tom.) Så isset() funktionen er rigtig god i de tilfælde, hvor du vil tjekke om din variabel er sat, men er ligeglad med om indholdet er noget specifikt - andet end at det i det mindste er sat og ikke tom.

Jeg håber at det gav lidt informationer omkring brugen af isset() funktionen.

Redigeret: isset() kan også benyttes til hurtigt at tjekke mere end om blot en variabel er sat, ved at eksempelvis skrive:

$variabel_1 = "";   # er okay
$variabel_2 = NULL; # vil fejle
$variabel_3 = 4;    # er okay

isset($variabel_1, $variabel_2, $variabel_3);

Så man kunne simpelt tjekke om de er sat, og hvis bare en af dem fejler - give en fejlbesked hurtigt og simpelt.

Redigeret af dhh @dhh  d. 22.10.2016 kl. 01:07

Med venlige hilsner

Daniel H. Hemmingsen (@dhh)

avatar
 
Besvar#2 @rasmusmax-petersen kommenterede for 6 år siden

 #1  Det giver rigtig god mening, især i forhold til optimering, hvor man kan springe kode over hvis en ikke-kritisk variabel ikke er sat.

Og også smart til fejlsøgning tænker jeg. Tak for hurtigt svar :-)

Spørgsmålet er besvaret, men du er altid mere end velkommen til at skrive en kommentar!
avatar
 

Du er ikke logget ind

Du skal være logget ind på v5.dk før du kan benytte vores forum. Det er ganske gratis at oprette en bruger.

Opret en ny gratis bruger Log ind

Følger med i denne tråd

rasmusmax-petersen

Forum kategorier

  • Generelt
  • Guides & Howto84
  • Offtopic / Andet158
  • Microsoft Office
  • Microsoft Word11
  • Microsoft Excel4
  • Microsoft PowerPoint0
  • Web og hjemmesider
  • Wordpress17
  • Operativsystemer
  • Apple Mac OS X14
  • Apple iOS28
  • Microsoft Windows4
  • Linux16
  • Teknologier
  • Netværk og WiFi3
  • Internet-tjenester9
  • Programmering
  • PHP-programmering124
  • iPhone-/Xcode-programmering9

Aktive forum-tråde lige nu

Er det værd at have en "portfolio"-hjemmeside!?
Fejlkode i form af bip-lyde ved opstart af gammel stationær PC
MacBook gået ud ved indsættelse at IPhone SE…
Is Weed Legal in Europe
Buy real passport online|Buy counterfeit money
Chrome Auto Fyld holdt op med at virke
ÆØÅ
Tegne Program
Bygget med af v5.dk
© Copyright 2006-2023 • Forretningsbetingelser • Copyright • Persondata- og Cookiepolitik
v5.dk ApS - Åbogade 15 - 8200 Aarhus N - CVR: 36902833
v5.dk logo
Hej, vi hedder v5.dk og vi laver e-learning på dansk

v5.dk er sat i verden for at gøre teknologi tilgængeligt og anvendeligt for både professionelle og almindelige brugere på alle niveauer.

93 200 555
  Skriv til os
v5.dk bruger cookies til at huske dine indstillinger, livechat samt til statistik
 

Alle vores priser er inkl. moms Sikker SSL-beskyttet forbindelse

Dankort og Visa-Dankort  Visa  Mastercard og Mastercard Junior  Maestro

  • Produkter
  • v5.dk Premium
  • Cloud-servers
  • v5.dk
  • Om v5.dk
  • Kunderne siger
  • Kontakt os
  • Presse
  • Stay updated
  • RSS & tjenester
  • Søg på v5.dk
  • Sitemap