/ 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
Kalde en funktion flere gange i træk
Fra : Silas Boye Nissen


Dato : 09-11-05 19:48

Jeg kalder en funktion med forskellige værdier og et ubestemt
antal gange.

Eksempel:
<?
billed_aarstal("1981");
billed_aarstal("1995");
billed_aarstal("2000");
billed_aarstal("2002");
?>

Er det ikke muligt at sammentrække det, så man kun skriver
billed_aarstal en gang? I stil med, hvad man kan med variabler og
arrays.

Venlig hilsen,
Silas Boye Nissen
www.sporvognsrejser.dk

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

 
 
Bertel Lund Hansen (09-11-2005)
Kommentar
Fra : Bertel Lund Hansen


Dato : 09-11-05 19:58

Silas Boye Nissen skrev:

> Jeg kalder en funktion med forskellige værdier og et ubestemt
> antal gange.

> Eksempel:

> <?
> billed_aarstal("1981");
> billed_aarstal("1995");
> billed_aarstal("2000");
> billed_aarstal("2002");
> ?>

> Er det ikke muligt at sammentrække det, så man kun skriver
> billed_aarstal en gang?

Jeg kan se to måder:

Du kan omskrive funktionen til at tage et array og så gentage
operationen for hvert element, eller du kan lave en for-løkke der
sender en parameter ad gangen til den nuværende funktion. Den
løkke kan så fodres fra et array. Reelt er de to løsninger dog
ens.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Silas Boye Nissen (10-11-2005)
Kommentar
Fra : Silas Boye Nissen


Dato : 10-11-05 13:53

Bertel Lund Hansen wrote in
dk.edb.internet.webdesign.serverside.php:
>
> Jeg kan se to måder:
>
> Du kan omskrive funktionen til at tage et array og så gentage
> operationen for hvert element, eller du kan lave en for-løkke der
> sender en parameter ad gangen til den nuværende funktion. Den
> løkke kan så fodres fra et array. Reelt er de to løsninger dog
> ens.

Da jeg har noget svært ved at se, hvorddan det kan udføres, ville
jeg blive meget gald, hvis du kunne give et eksempel på en af de to
metoder - evt. med udgangspunkt i mit eksempel.

På forhånd tak...

Hilsen Silas

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

René Lønstrup (10-11-2005)
Kommentar
Fra : René Lønstrup


Dato : 10-11-05 14:21

Silas Boye Nissen wrote:
>> Du kan omskrive funktionen til at tage et array og så gentage
>> operationen for hvert element, eller du kan lave en for-løkke der
>> sender en parameter ad gangen til den nuværende funktion. Den
>> løkke kan så fodres fra et array. Reelt er de to løsninger dog
>> ens.
>
> Da jeg har noget svært ved at se, hvorddan det kan udføres, ville
> jeg blive meget gald, hvis du kunne give et eksempel på en af de to
> metoder - evt. med udgangspunkt i mit eksempel.

Løsning 1:
<?php
$aarstal = array("1981","1995","2000","2002");
billed_aarstal($aarstal);

function billed_aarstal($aar) {
if (is_array($aar)) {
foreach($aar as $a) {
echo $a . "<br>"; // eller hvad der nu skal gøres med årstallet
}
}
else {
error("input argument not an array!");
}
}
?>

Løsning 2:
<?php
$aarstal = array("1981","1995","2000","2002");
foreach($aarstal as $a) {
billed_aarstal($a);
}

function billed_aarstal($aar) {
echo $aar . "<br>"; // eller hvad der nu skal gøres med årstallet
}
?>


--
Mvh René Lønstrup
web: http://rene.loenstrup.net?r=usenet
email: se om du kan regne den ud..



Silas Boye Nissen (10-11-2005)
Kommentar
Fra : Silas Boye Nissen


Dato : 10-11-05 17:31

René Lønstrup wrote in dk.edb.internet.webdesign.serverside.php:
> Løsning 1:
> <?php
> $aarstal = array("1981","1995","2000","2002");
> billed_aarstal($aarstal);
>
> function billed_aarstal($aar) {
> if (is_array($aar)) {
> foreach($aar as $a) {
> echo $a . "<br>"; // eller hvad der nu skal gøres med årstallet
> }
> }
> else {
> error("input argument not an array!");
> }
> }
> ?>
>
> Løsning 2:
> <?php
> $aarstal = array("1981","1995","2000","2002");
> foreach($aarstal as $a) {
> billed_aarstal($a);
> }
>
> function billed_aarstal($aar) {
> echo $aar . "<br>"; // eller hvad der nu skal gøres med årstallet
> }
> ?>

Tusind tak for jeres hjælp - jeg fået løst mit problem.

Venlig hilsen,
Silas

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

Bertel Lund Hansen (10-11-2005)
Kommentar
Fra : Bertel Lund Hansen


Dato : 10-11-05 14:29

Silas Boye Nissen skrev:

>> Du kan omskrive funktionen til at tage et array og så gentage
>> operationen for hvert element, eller du kan lave en for-løkke der
>> sender en parameter ad gangen til den nuværende funktion. Den
>> løkke kan så fodres fra et array. Reelt er de to løsninger dog
>> ens.

> Da jeg har noget svært ved at se, hvorddan det kan udføres, ville
> jeg blive meget gald, hvis du kunne give et eksempel på en af de to
> metoder - evt. med udgangspunkt i mit eksempel.

function billed_aarstal ($aar) {
   do_something($useful);
}

// -------- main

$diverse_aarstal = array ('1981','1985','1988','1996','2005');

foreach ($diverse_aarstal as $aar)
   billed_aarstal ($aar);

Nu ved jeg ikke hvad din funktion gør, så du skal være opmærksom
på at foreach-konstruktionen tager en *kopi* af elementerne og
arbejder med den. Hvis din funktion f.eks. lægger 1 til hvert
årstal, sker der ikke noget med de egentlige værdier i arrayet.

Hvis du har brug for at ændre på de oprindelige værdier, skal du
gøre sådan i stedet:

for ($nr=0; $nr<count($diverse_aarstal); ++$nr)
   billed_aarstal ($diverse_aarstal[$nr]);

Men foreach er hurtigere.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

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

Månedens bedste
Årets bedste
Sidste års bedste