Gå til innhold

Funksjoner med argument


Anbefalte innlegg

Skrevet

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()

Videoannonse
Annonse
Skrevet (endret)

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
Skrevet

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.

Skrevet

Litt av utfordringen med PHP tutorials på nettet er at det er veldig varierende kvalitet på de, og gamle og utdaterte ting blir ikke fjernet. Størst problem når man er ny, da er det lett man lærer dårlige, og i verste fall, feil vaner.

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