Gå til innhold

Valgfrie variabler i funksjoner


Anbefalte innlegg

Skrevet

Hei!

 

Jeg prøvde dette:

function funksjon($variabel1, $variabel2) {
if (isset($variabel2)) {
// Kode hvis begge er satt
} else {
// Kode hvis $variabel2 IKKE er satt
}
}

Det virka dårlig...

Forslag?

Videoannonse
Annonse
Skrevet
function funksjon($variabel1, $variabel2) {
if (isset($variabel1) and isset($variabel2)) {
// Kode hvis begge er satt
} elseif (!isset($variabel2)) {
// Kode hvis $variabel2 IKKE er satt
}
}

Skrevet

Enten gjør kallet til funksjonen med null som andre parameter, dvs. funksjon($var, null);

 

Eller gjør følgende endring som setter den andre variabelen til null som standard:

 

function funksjon($variabel1, $variabel2 = null) {

Skrevet

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', '');

Skrevet
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

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

Skrevet

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)

Skrevet

Jeg forstår likevel godt de som resonerer slik at å sette en variabel til NULL, fremstår som å initiere den, eller "sette" den.

 

Selvom i virkeligheten en variabel tilsynelatende er NULL uansett om den er brukt før eller ikke.

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