Gå til innhold

Valgfrie variabler i funksjoner


Anbefalte innlegg

Videoannonse
Annonse

function MyTest($Var1, $Var2=null){
 if(empty($Var2)) {
   echo 'Var2 er tom';
 }
 else {
   echo 'Var2 er ikke tom';
 }
}

 

Det kan være at isset() fungerer, isåfall så mener jeg at det er feil siden $Var2 er satt, riktignok til NULL, men den er allikevel satt. if(empty()) vil fungere både med MyTest('Jalla'); og MyTest('Jalla', '');

Lenke til kommentar
function MyTest($Var1, $Var2=null){
 if(empty($Var2)) {
   echo 'Var2 er tom';
 }
 else {
   echo 'Var2 er ikke tom';
 }
}

 

Det kan være at isset() fungerer, isåfall så mener jeg at det er feil siden $Var2 er satt, riktignok til NULL, men den er allikevel satt. if(empty()) vil fungere både med MyTest('Jalla'); og MyTest('Jalla', '');

Phpmanualen er uenig med deg:

 

$foo = NULL;
var_dump(isset($foo));  // FALSE

Lenke til kommentar
Det kan være at isset() fungerer, isåfall så mener jeg at det er feil siden $Var2 er satt, riktignok til NULL, men den er allikevel satt.

Feil.

$var = NULL;
if (isset($var)) // FALSE
if (empty($var)) // TRUE

$var = 0;
if (isset($var)) // TRUE
if (empty($var)) // TRUE

$var = 1;
if (isset($var)) // TRUE
if (empty($var)) // FALSE

Tror det er slik det funker.

Lenke til kommentar

isset tolker NULL som ikke satt, det er fordi 0 og NULL ikke er det samme. 0 er et tall, der i mot i boolean sammenheng er 0 = FALSE - men det er ikke det som sjekkes.

 

Har man ikke definert en variabel så er den NULL. Ved å sette en variabel til NULL så får den samme "verdi" som den ikke skulle vært satt, og er derfor ikke satt. Nå er jeg litt på tynn is, men jeg mener at unset() også setter variabler til NULL.

 

Det er viktig at du merker deg at NULL ikke er det samme som "" eller 0, men det samme som ikke satt (!isset)

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