/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
funktioner
Fra : kasper


Dato : 27-04-09 23:32

heey allesammen...

jeg har lavet denne funktion:

function spiller13()
{
$aimmin = "1";
$aimmax = "2";
$teammin = "3";
$teammax = "4";
$vaabenmin = "5";
$vaabenmax = "6";
$spilmin = "7";
$spilmax = "8";
$hurtigmin = "9";
$hurtigmax = "10";
$beslutsommin = "11";
$beslutsommax = "12";
$opmmin = "13";
$opmmax = "14";
$kreamin = "15";
$kreamax = "16";
$taalmin = "17";
$taalmax = "18";
$rolimin = "19";
$rolimax = "20";
}

vil bare vide om der er en måde at hive de tal up på ligesom når
man includere en anden fil så jeg bare evt kan skrive:

spiller13();
echo "$minaim";

? kan man det?

//Kasper Helsted

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Dan Storm (28-04-2009)
Kommentar
Fra : Dan Storm


Dato : 28-04-09 07:48

kasper skrev:
> heey allesammen...
>
> jeg har lavet denne funktion:
>
> function spiller13()
> {
> [SNIP variabler i en funktion]
> }

Det kan godt være du kalder det en funktion, men 'funktionen' gør ikke
andet end at erklære nogle variabler i sit eget scope. Så hvad er dens
funktion egentlig?

>
> vil bare vide om der er en måde at hive de tal up på ligesom når
> man includere en anden fil så jeg bare evt kan skrive:
>
> spiller13();
> echo "$minaim";
>
> ? kan man det?

Ikke som funktionen er nu. Din funktions variabler kan ikke komme ud af
funktionens scope*.
I det her tilfælde bliver du nød til at returnere dine variabler. Den
bedste måde at gøre det på er gennem et array.

F.eks:
function spiller13()
{
   $spiller["aimmin"] = "1";
   $spiller["aimmax"] = "2";
   $spiller["teammin"] = "3";
   $spiller["teammax"] = "4";
   $spiller["vaabenmin"] = "5";
   $spiller["vaabenmax"] = "6";
   $spiller["spilmin"] = "7";
   $spiller["spilmax"] = "8";
   $spiller["hurtigmin"] = "9";
   $spiller["hurtigmax"] = "10";
   $spiller["beslutsommin"] = "11";
   $spiller["beslutsommax"] = "12";
   $spiller["opmmin"] = "13";
   $spiller["opmmax"] = "14";
   $spiller["kreamin"] = "15";
   $spiller["kreamax"] = "16";
   $spiller["taalmin"] = "17";
   $spiller["taalmax"] = "18";
   $spiller["rolimin"] = "19";
   $spiller["rolimax"] = "20";
   
   return $spiller;
}

$spiller = spiller13();
echo $spiller["aimmin"];

Jeg bliver fristet til at spørge om du så har sådan en 'funktion' for
hver spiller du har? Men funktionens navn er måske svaret i sig selv...


*)
Scope kan du læse mere om på
<url:http://dk.php.net/manual/en/language.variables.scope.php>

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

kasper (28-04-2009)
Kommentar
Fra : kasper


Dato : 28-04-09 09:23

Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> kasper skrev:
> > heey allesammen...
> >
> > jeg har lavet denne funktion:
> >
> > function spiller13()
> > {
> > [SNIP variabler i en funktion]
> > }
>
> Det kan godt være du kalder det en funktion, men 'funktionen' gør ikke
> andet end at erklære nogle variabler i sit eget scope. Så hvad er dens
> funktion egentlig?
>
> >
> > vil bare vide om der er en måde at hive de tal up på ligesom når
> > man includere en anden fil så jeg bare evt kan skrive:
> >
> > spiller13();
> > echo "$minaim";
> >
> > ? kan man det?
>
> Ikke som funktionen er nu. Din funktions variabler kan ikke komme ud af
> funktionens scope*.
> I det her tilfælde bliver du nød til at returnere dine variabler. Den
> bedste måde at gøre det på er gennem et array.
>
> F.eks:
> function spiller13()
> {
>    $spiller["aimmin"] = "1";
>    $spiller["aimmax"] = "2";
>    $spiller["teammin"] = "3";
>    $spiller["teammax"] = "4";
>    $spiller["vaabenmin"] = "5";
>    $spiller["vaabenmax"] = "6";
>    $spiller["spilmin"] = "7";
>    $spiller["spilmax"] = "8";
>    $spiller["hurtigmin"] = "9";
>    $spiller["hurtigmax"] = "10";
>    $spiller["beslutsommin"] = "11";
>    $spiller["beslutsommax"] = "12";
>    $spiller["opmmin"] = "13";
>    $spiller["opmmax"] = "14";
>    $spiller["kreamin"] = "15";
>    $spiller["kreamax"] = "16";
>    $spiller["taalmin"] = "17";
>    $spiller["taalmax"] = "18";
>    $spiller["rolimin"] = "19";
>    $spiller["rolimax"] = "20";
>    
>    return $spiller;
> }
>
> $spiller = spiller13();
> echo $spiller["aimmin"];
>
> Jeg bliver fristet til at spørge om du så har sådan en 'funktion' for
> hver spiller du har? Men funktionens navn er måske svaret i sig selv...
>
>
> *)
> Scope kan du læse mere om på
> <url:http://dk.php.net/manual/en/language.variables.scope.php>
>
> --
> Dan Storm - storm at err0r dot dk / http://err0r.dk
>
> People who claim they don't let little things bother
> them have never slept in a room with a single mosquito.

Nej denne funktion er til at definere nogen spillere når de oprettes det
er deres skills :D

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dan Storm (28-04-2009)
Kommentar
Fra : Dan Storm


Dato : 28-04-09 09:26

kasper skrev:
> Nej denne funktion er til at definere nogen spillere når de oprettes det
> er deres skills :D
>

Er det noget du smider i en database?


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

kasper (28-04-2009)
Kommentar
Fra : kasper


Dato : 28-04-09 09:50

Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> kasper skrev:
> > Nej denne funktion er til at definere nogen spillere når de oprettes det
> > er deres skills :D
> >
>
> Er det noget du smider i en database?
>
>
> --
> Dan Storm - storm at err0r dot dk / http://err0r.dk
>
> People who claim they don't let little things bother
> them have never slept in a room with a single mosquito.

Ja det ryger i min MySQL database...

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dan Storm (28-04-2009)
Kommentar
Fra : Dan Storm


Dato : 28-04-09 09:58

kasper skrev:
> Ja det ryger i min MySQL database...
>

Hvad er så formålet med at smide variablerne i en funktion?
Hvis det alligevel blot er nogle standard data der skal smides i en
tabel, hvorfor så ikke bare lade dem stå i et array, du kan hente
værdierne fra, når du skal bruge dem?

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

kasper (28-04-2009)
Kommentar
Fra : kasper


Dato : 28-04-09 12:13

Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> kasper skrev:
> > Ja det ryger i min MySQL database...
> >
>
> Hvad er så formålet med at smide variablerne i en funktion?
> Hvis det alligevel blot er nogle standard data der skal smides i en
> tabel, hvorfor så ikke bare lade dem stå i et array, du kan hente
> værdierne fra, når du skal bruge dem?
>
> --
> Dan Storm - storm at err0r dot dk / http://err0r.dk
>
> People who claim they don't let little things bother
> them have never slept in a room with a single mosquito.

det er fordi det er en alder spiller13() skal være de spillere der er
13 årige, og jeg har fået den til at loade det der fra...

og $spiller["aimmin"] og $spiller["aimmax"] skal indikere deres
skills...

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dan Storm (28-04-2009)
Kommentar
Fra : Dan Storm


Dato : 28-04-09 12:30

kasper skrev:
> det er fordi det er en alder spiller13() skal være de spillere der er
> 13 årige, og jeg har fået den til at loade det der fra...
>
> og $spiller["aimmin"] og $spiller["aimmax"] skal indikere deres
> skills...
>

Jeg forstår ikke din argumentation... om der er nogen...

// Spiller 13 år
$spiller[13]["aimmin"] = "1";
$spiller[13]["aimmax"] = "2";
$spiller[13]["teammin"] = "3";
$spiller[13]["teammax"] = "4";
$spiller[13]["vaabenmin"] = "5";
$spiller[13]["vaabenmax"] = "6";
$spiller[13]["spilmin"] = "7";
$spiller[13]["spilmax"] = "8";
$spiller[13]["hurtigmin"] = "9";
$spiller[13]["hurtigmax"] = "10";
$spiller[13]["beslutsommin"] = "11";
$spiller[13]["beslutsommax"] = "12";
$spiller[13]["opmmin"] = "13";
$spiller[13]["opmmax"] = "14";
$spiller[13]["kreamin"] = "15";
$spiller[13]["kreamax"] = "16";
$spiller[13]["taalmin"] = "17";
$spiller[13]["taalmax"] = "18";
$spiller[13]["rolimin"] = "19";
$spiller[13]["rolimax"] = "20";

// Spiller 15 år
$spiller[15]["aimmin"] = "1";
$spiller[15]["aimmax"] = "2";
$spiller[15]["teammin"] = "3";
$spiller[15]["teammax"] = "4";
$spiller[15]["vaabenmin"] = "5";
$spiller[15]["vaabenmax"] = "6";
$spiller[15]["spilmin"] = "7";
$spiller[15]["spilmax"] = "8";
$spiller[15]["hurtigmin"] = "9";
$spiller[15]["hurtigmax"] = "10";
$spiller[15]["beslutsommin"] = "11";
$spiller[15]["beslutsommax"] = "12";
$spiller[15]["opmmin"] = "13";
$spiller[15]["opmmax"] = "14";
$spiller[15]["kreamin"] = "15";
$spiller[15]["kreamax"] = "16";
$spiller[15]["taalmin"] = "17";
$spiller[15]["taalmax"] = "18";
$spiller[15]["rolimin"] = "19";
$spiller[15]["rolimax"] = "20";



$nySpiller = $spiller[13];
echo $nySpiller["aimmin"];




--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

kasper (28-04-2009)
Kommentar
Fra : kasper


Dato : 28-04-09 14:03

Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> kasper skrev:
> > det er fordi det er en alder spiller13() skal være de spillere der er
> > 13 årige, og jeg har fået den til at loade det der fra...
> >
> > og $spiller["aimmin"] og $spiller["aimmax"] skal indikere deres
> > skills...
> >
>
> Jeg forstår ikke din argumentation... om der er nogen...
>
> // Spiller 13 år
> $spiller[13]["aimmin"] = "1";
> $spiller[13]["aimmax"] = "2";
> $spiller[13]["teammin"] = "3";
> $spiller[13]["teammax"] = "4";
> $spiller[13]["vaabenmin"] = "5";
> $spiller[13]["vaabenmax"] = "6";
> $spiller[13]["spilmin"] = "7";
> $spiller[13]["spilmax"] = "8";
> $spiller[13]["hurtigmin"] = "9";
> $spiller[13]["hurtigmax"] = "10";
> $spiller[13]["beslutsommin"] = "11";
> $spiller[13]["beslutsommax"] = "12";
> $spiller[13]["opmmin"] = "13";
> $spiller[13]["opmmax"] = "14";
> $spiller[13]["kreamin"] = "15";
> $spiller[13]["kreamax"] = "16";
> $spiller[13]["taalmin"] = "17";
> $spiller[13]["taalmax"] = "18";
> $spiller[13]["rolimin"] = "19";
> $spiller[13]["rolimax"] = "20";
>
> // Spiller 15 år
> $spiller[15]["aimmin"] = "1";
> $spiller[15]["aimmax"] = "2";
> $spiller[15]["teammin"] = "3";
> $spiller[15]["teammax"] = "4";
> $spiller[15]["vaabenmin"] = "5";
> $spiller[15]["vaabenmax"] = "6";
> $spiller[15]["spilmin"] = "7";
> $spiller[15]["spilmax"] = "8";
> $spiller[15]["hurtigmin"] = "9";
> $spiller[15]["hurtigmax"] = "10";
> $spiller[15]["beslutsommin"] = "11";
> $spiller[15]["beslutsommax"] = "12";
> $spiller[15]["opmmin"] = "13";
> $spiller[15]["opmmax"] = "14";
> $spiller[15]["kreamin"] = "15";
> $spiller[15]["kreamax"] = "16";
> $spiller[15]["taalmin"] = "17";
> $spiller[15]["taalmax"] = "18";
> $spiller[15]["rolimin"] = "19";
> $spiller[15]["rolimax"] = "20";
>
>
>
> $nySpiller = $spiller[13];
> echo $nySpiller["aimmin"];
>
>
>
>
> --
> Dan Storm - storm at err0r dot dk / http://err0r.dk
>
> People who claim they don't let little things bother
> them have never slept in a room with a single mosquito.

KK vidste bare ikke man kunne gøre det på den måde...

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Leif Neland (28-04-2009)
Kommentar
Fra : Leif Neland


Dato : 28-04-09 08:12

kasper skrev:
> heey allesammen...
>
> jeg har lavet denne funktion:
>
> function spiller13()
> {
> $aimmin = "1";
> $aimmax = "2";
> $teammin = "3";
...
> }
>
> vil bare vide om der er en måde at hive de tal up på ligesom når
> man includere en anden fil så jeg bare evt kan skrive:

Strengt taget er det ikke tal, men strenge.

>
> spiller13();
> echo "$minaim";
>
> ? kan man det?
>
> //Kasper Helsted
>
Du er nok bedre tjent med at lære om objekter

En lille teaser er f.ex.
http://www.oreillynet.com/pub/a/php/2002/07/18/php_foundations.html

Noget i stil med
- - - - -
class player_object {
// Standardværdier for alle players
public $aimmin = 1;
public $aimmax = 2;
// variable uden default
public $rollmin;
public $rollmax;
....
}

// Opret spiller13
$spiller13 = new player_object;
// Tilret
$spiller13->rollmin = 14;
....

// brug variable.
echo $spiller13->rollmax;

- - - - -

class player_object er en "template", du bruger til at oprette objecter
af den type med "new".

Du kan lave templates til forskellige spillertyper:
class orc_object extends player_object {
// orc'er har de samme værder som standard bortset fra disse
public $aimmin = 3;
}

$spiller14 = new orc_object;

Dette er kun variable, men der kan også være funktioner i klasser.

Hvis du inde i player_object skriver
public function styrke() {
return ($this->mana + $this->agility)
}

kan du så bruge
$spiller13->styrke();

I orc_object kan du så definere
public function styrke() {
return ($this->mana + $this->persistance)
}

Så kan du bruge
$spiller14->styrke();

uden at skulle tænke på at styrken beregnes anderledes for orc'er end
andre typer.

Puritanere mener at man aldrig skal bruge variable i klasser direkte,
men via funktioner.

Altså have
class player_object {
var $mana = 0;
public function getmana() {
return $this->mana;
}
public function setmana($v) {
$this->mana = $v;
}

Det vil så gøre at du uden at lave om i resten af programmet kan lave
public function getmana() {
return $this->mana * phase_of_moon();
}
hvis man får lyst.

Leif


PS: Jeg er stadig for det meste i tilstanden "Objekter er da smarte; det
burde jeg bruge mere i mine egne programmer, men ihvertfald forstår jeg,
hvad der sker i de programmer, jeg skal rette i", så jeg kan have
skrevet noget forkert i ovenstående; det skal vi nok få at se...



Dan Storm (28-04-2009)
Kommentar
Fra : Dan Storm


Dato : 28-04-09 08:20

Leif Neland skrev:
> PS: Jeg er stadig for det meste i tilstanden "Objekter er da smarte; det
> burde jeg bruge mere i mine egne programmer, men ihvertfald forstår jeg,
> hvad der sker i de programmer, jeg skal rette i", så jeg kan have
> skrevet noget forkert i ovenstående; det skal vi nok få at se...

Tjaeh, jeg ser ikke noget forkert (udover nogle manglende semikoloner ;)
) men du blander PHP4 sammen med PHP5 :)

> class player_object {
> var $mana = 0;
> public function getmana() {
> return $this->mana;
> }

'var' er PHP4 måden at gøre det på. Og lige nedenunder erklærer du
funktionen for public - som er PHP5 måden. :) Det betyder ikke noget, da
det stadig vil virke (ved ikke om det også er tilfældet fra PHP6, men
det ser vi til).





--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409079
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste