Gå til innhold

Funksjoner med argument


Anbefalte innlegg

Leste en tutorial om funksjoner hvor dette ble gjort:

$userip = $_SERVER['REMOTE_ADDR'];
function ip_exists($ip) {
	global $userip;
	$query = "SELECT `ip` FROM `hits_ip` WHERE `ip`='$userip'";
	$query_run = mysql_query($query);
	$query_num_rows = mysql_num_rows($query_run);
	if($query_num_rows == 0) {
		return true;
	}
	else if($query_num_rows >= 1) {
		return false;
	}
		
}
if(ip_exists($userip)) {
	ip_add($userip);
	hitcounter();
		
}
else {
	echo 'exists';
}

Jeg detter ut, han oppretter argumenten $ip i funksjonen, men bruker den ikke. Hva er det jeg ikke skjønner? Vil ikke det logiske bare være å fjerne argumenten til ip_exists()

Lenke til kommentar
Videoannonse
Annonse

Rettelse, ny feil følger.

 

Forfatteren av denne tutorialen aner ikke hva han driver med. Her gjøres $userip global, istedenfor å bruke $ip i funksjonen. Det bekjemper hele konseptet.

 

$query = "SELECT `ip` FROM `hits_ip` WHERE `ip`='$userip'";

skulle ha vært

$query = "SELECT `ip` FROM `hits_ip` WHERE `ip`='$ip'";

og $userip skulle aldri ha vært gjort global.

 

 

 

 

Den variabelen du angir i funksjonsdefinisjonen tar verdien som blir sendt i funksjonskallet

function ip_exists($variabel)
{
  echo $variabel;
}

Alt som blir sendt til funksjonen blir lagt inn i variabelen $variabel, så om du kaller funksjonen med

ip_exist('127.0.0.1');

så vil funksjonen skrive ut 127.0.0.1, fordi i funksjonen så er det innholdet i $variabel. Hvis du kaller funksjonen med verdien i variabelen så blir verdien sendt til funksjonen uavhengig av variabelnavnet brukt i funksjonskallet

$minIp = '127.0.0.1';
ip_exist($minIp);

vil også skrive ut 127.0.0.1 fordi variabelen $variabel nå inneholder verdien av $minIp, altså 127.0.0.1.

 

Håper det hjelper.

 

 

Endret av BlueEAGLE
  • Liker 1
Lenke til kommentar

Rettelse, ny feil følger.

 

Forfatteren av denne tutorialen aner ikke hva han driver med. Her gjøres $userip global, istedenfor å bruke $ip i funksjonen. Det bekjemper hele konseptet.

 

$query = "SELECT `ip` FROM `hits_ip` WHERE `ip`='$userip'";

skulle ha vært

$query = "SELECT `ip` FROM `hits_ip` WHERE `ip`='$ip'";

og $userip skulle aldri ha vært gjort global.

 

Takk, nå går det hele rundt. Det du har sagt i spoiler er det jeg har fått med meg, det var derfor jeg stusset litt over denne tutorialen.

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