/ 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
while ($mikgru % 1 == 0 AND $mikgru != 0)?
Fra : Thomas Dybdahl osv


Dato : 19-03-03 16:18

Jeg er ved at oversætte et program fra java til php, men når jeg
tester det, skriver den at Maximum execution time er udløbet. Det
er forskælige linjer den giver skylden hver gang, de ligger dog
alle mellem 139 og 146.
Jeg har en ide om at det kan have noget at gøre med denne
linje:while ($mikgru % 1 == 0 AND $mikgru != 0). Hvis det er,
hvad ville man så erstatte den med i php?

<url: http://www.ahle.dk/phptests/tmt.php >

...
Thomas

--
Danmarks største specialiserede IT jobdatabase
- Udelukkende med IT- og internetrelaterede jobs
- Opret en profil og lad drømmejobbet finde dig
KLIK HER! => http://www.html.dk/job

 
 
Thomas Dybdahl osv (19-03-2003)
Kommentar
Fra : Thomas Dybdahl osv


Dato : 19-03-03 16:20

[SNIP]
> <url: http://www.ahle.dk/phptests/tmt.php >

Jeg glemte lige at angive denne url:
http://www.ahle.dk/phptests/tmt.txt

--
Danmarks største specialiserede IT jobdatabase
- Udelukkende med IT- og internetrelaterede jobs
- Opret en profil og lad drømmejobbet finde dig
KLIK HER! => http://www.html.dk/job

Lars Dybdahl (19-03-2003)
Kommentar
Fra : Lars Dybdahl


Dato : 19-03-03 16:27

Thomas Dybdahl osv wrote:
> Jeg er ved at oversætte et program fra java til php, men når jeg
> tester det, skriver den at Maximum execution time er udløbet. Det

Det skyldes at webserveren sætter en maksimum grænse for, hvor længe dit
script må køre. Hvis dit php bruger mere tid, bliver det simpelthen tvunget
til at standse.

Det er med andre ord ikke noget i dit program, men din webserver's
indstilling. Hvis du ikke kan ændre i webserveren's indstillinger, så må du
skrive dit program om, så det bliver færdigt på kortere tid.

Lars.
--
Freelance programmør
Programmering mod timebetaling

Niels Andersen (19-03-2003)
Kommentar
Fra : Niels Andersen


Dato : 19-03-03 16:31

Thomas Dybdahl osv wrote in <b5a1o2$ds2$1@sunsite.dk>:
> Maximum execution time er udløbet. Det
> er forskælige linjer den giver skylden hver gang, de ligger dog
> alle mellem 139 og 146.

Det betyder nok at du er kommet til at lave en uendelig løkke.

Linje 139-146:

{
while ($mikgru % 1 == 0 AND $mikgru != 0) //140
{
$mikgru2++;
$mikgru--;
}
}

Modulus 1 giver vist altid nul i PHP, så "$mikgru % 1 == 0 AND" får du ikke
noget ud af. Ved du hvad formålet med den er? Måske at tjekke om der er
decimaler på?

Anyway, løkken bliver ved med at trække 1 fra $mikgru, indtil den er på nul.
Men hvis den er et komma-tal, eller starter under nul, så stopper løkken
aldrig.

> Jeg har en ide om at det kan have noget at gøre med denne
> linje:while ($mikgru % 1 == 0 AND $mikgru != 0). Hvis det er,
> hvad ville man så erstatte den med i php?

Det kommer an på hvad linjen skal gøre. :)

Gæt:

if (round($mikgru) == $mikgru) && $mikgru>0) {
$mikgru2 += $mikgru;
$mikgru = 0;
}

(i stedet for while-blokken)

--
Mvh.
Niels Andersen
http://myplace.dk/articles/getpost/?lang=da

Thomas Dybdahl osv (19-03-2003)
Kommentar
Fra : Thomas Dybdahl osv


Dato : 19-03-03 16:46

> if (round($mikgru) == $mikgru) && $mikgru>0) {
> $mikgru2 += $mikgru;
> $mikgru = 0;
> }

Du ramte plet, hele det påstyr, omkring 10 linje, var bare brugt for at afrunde
mikgru. så jeg behøvede sådan set kun round();


--
Danmarks største specialiserede IT jobdatabase
- Udelukkende med IT- og internetrelaterede jobs
- Opret en profil og lad drømmejobbet finde dig
KLIK HER! => http://www.html.dk/job

Jonas Koch Bentzen (19-03-2003)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 19-03-03 16:36

Thomas Dybdahl osv wrote:

> Jeg er ved at oversætte et program fra java til php, men når jeg
> tester det, skriver den at Maximum execution time er udløbet. Det
> er forskælige linjer den giver skylden hver gang, de ligger dog
> alle mellem 139 og 146.
> Jeg har en ide om at det kan have noget at gøre med denne
> linje:while ($mikgru % 1 == 0 AND $mikgru != 0). Hvis det er,
> hvad ville man så erstatte den med i php?

Der så vidt jeg kan se ikke noget syntaktisk galt med den. Til gengæld
undrer jeg mig lidt over den: Vil det første udsagn ikke altid være sandt?
1 går vel op i alting? Så vidt jeg kan se, kan linjen hurtigere skrives som

while ($mikgru != 0) {

Der er derudover to mulige problemer:

1. Du tester den samme variabel to gange i betingelsen. Kunne det tænkes, at
den ene af variablerne skulle have været $mikgru2?

2. Du bruger $mikgru-- i løkken, men hvis $mikgru i forvejen er mindre end
0, så kører løkken for evigt.

--
Jonas Koch Bentzen

http://findhim.com/

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

Månedens bedste
Årets bedste
Sidste års bedste