Skrevet lør. d. 28. juli 2001 kl. 16:34:17| #1
man kunne forestille sig at man gerne ville ligge samtlige værdier af variablene sammen.
Skrevet lør. d. 28. juli 2001 kl. 16:34:17| #2
fx:
$i = 1;
while($var_$i != \"\") {
if ($var_$i == \"something\") {
do some other things :)
}
}
Skrevet lør. d. 28. juli 2001 kl. 16:34:55| #3
doh:
$i++;
før den sidste }
Skrevet lør. d. 28. juli 2001 kl. 16:35:06| #4
ok, det kan man godt?, jeg troede ikke det var muligt at gøre det på slig måde, jeg tester lige...
Skrevet lør. d. 28. juli 2001 kl. 16:40:39| #5
for($i=0; $i<=100; $i++){
$var_name = \'var_\'.$i;
echo $$var_name;
}
Skrevet lør. d. 28. juli 2001 kl. 16:45:21| #6
*host* var det ikke nu du skulle begynde at taenke paa arrays........
Skrevet lør. d. 28. juli 2001 kl. 16:47:16| #7
Dette virker ikke:
$var_5 = \"virker\";
for ($i=0;$i<6;$i++){
if (!empty($var_$i)){
//print \"$var_$i\";
echo $var_$i;
}
}
hvad gør jeg galt?
Skrevet lør. d. 28. juli 2001 kl. 16:48:59| #8
jo hvis det er kan lade sig gøre at tilegne en værdi i et array en værdi fra en html form. Men det kan man måske nok godt... jeg tjekker lige...
Skrevet lør. d. 28. juli 2001 kl. 16:50:35| #9
Skrevet lør. d. 28. juli 2001 kl. 16:52:11| #10
men jeg ville nu stadig godt have svar på mit spørgsmål...
Skrevet lør. d. 28. juli 2001 kl. 16:53:36| #11
Det har jeg jo givet dig!
Du skal bruge min løsning hvis du vil gennemløbe alle og f.eks. udskrive dem.
Skrevet lør. d. 28. juli 2001 kl. 16:56:31| #12
Jeg vil mene at du skal gøre sådan med dit eksempel:
$var_5 = \"virker\";
for ($i=0;$i<6;$i++){
if (!empty($$var_$i)){
//print $$var_$i;
echo $$var_$i;
}
}
Skrevet lør. d. 28. juli 2001 kl. 16:57:41| #13
det har du da egentlig også, jeg havde bare ikke lige fået det testet men det virker. Tak for det.
Skrevet lør. d. 28. juli 2001 kl. 16:58:01| #14
Skrevet lør. d. 28. juli 2001 kl. 16:58:07| #15
Hvis ikke det virker så gør sådan her:
$var_5 = \"virker\";
for ($i=0;$i<6;$i++){
$var_name = \'var\'.$i;
if (!empty($$var_name)){
//print $$var_name;
echo $$var_name;
}
}
Skrevet lør. d. 28. juli 2001 kl. 16:58:28| #16
Skrevet lør. d. 28. juli 2001 kl. 16:59:19| #17
jeg gjorde nu sådan:
$var_5 = \"virker\";
for($i=0; $i<=100; $i++){
$var_name = \'var_\'.$i;
echo $$var_name;
Skrevet lør. d. 28. juli 2001 kl. 16:59:28| #18
det er meget fint du svarer barefoot, men har du overvejet optimering af din loesning... ?
naa, det er midnat og tid til at knalde brikker... ses imorgen
Skrevet lør. d. 28. juli 2001 kl. 17:01:36| #19
optimering? fortæl fortæl
Skrevet lør. d. 28. juli 2001 kl. 17:03:08| #20
ljweb => hvad mener du?
Det er da det smarteste hvis man vil gennemløbe alle variabler?
Har du måske et andet forslag?
Udover selvfølgelig at brbuge arrays i stedet.
Skrevet lør. d. 28. juli 2001 kl. 17:04:48| #21
i et array bliver man vel også nød til at gennemløbe samtlige variable
Skrevet lør. d. 28. juli 2001 kl. 17:05:24| #22
Skrevet lør. d. 28. juli 2001 kl. 17:05:44| #23
bare >> det er da klart at appel skal anvende arrays til hans arbejde, der er ingen tvivl om det. spoergsmaalet er blot antallet af variabler der anvendes...
Skrevet lør. d. 28. juli 2001 kl. 17:06:43| #24
appel => du kan godt bruge arrays.
<INPUT TYPE=\"text\" NAME=\"dit_array\">
<INPUT TYPE=\"text\" NAME=\"dit_array\">
<INPUT TYPE=\"text\" NAME=\"dit_array\">
<INPUT TYPE=\"text\" NAME=\"dit_array\">
På den anden side:
for($i=0; $i<sozeof($array)); $i++){
echo $dit_array[$i].\'<br>\';
}
Skrevet lør. d. 28. juli 2001 kl. 17:07:31| #25
Første del skal selvfølgelig være:
<INPUT TYPE=\"text\" NAME=\"dit_array[]\">
<INPUT TYPE=\"text\" NAME=\"dit_array[]\">
<INPUT TYPE=\"text\" NAME=\"dit_array[]\">
<INPUT TYPE=\"text\" NAME=\"dit_array[]\">
Skrevet lør. d. 28. juli 2001 kl. 17:10:06| #26
ja det ved jeg godt, men i mit tilfælde er det ikke smartere
Skrevet lør. d. 28. juli 2001 kl. 17:11:25| #27
kompleksiteten af ens kode bliver da den samme om man bruger arrays eller ikke, idet man ligemeget hvad skal traversere samtlige elementer.
Skrevet lør. d. 28. juli 2001 kl. 21:01:46| #28
appel> Samme kompleksitet? Jeg tror vist flertallet er enig med mig i, at arrays er bedre end det her \"snusk\". :)
Jeg kan fx. lige omskrive eksemplet:
$var_5 = \"virker\";
for ($i=0;$i<6;$i++){
$var_name = \'var\'.$i;
if (!empty($$var_name)){
echo $$var_name;
}
}
bliver fx. til:
$var[5] = \"virker\";
foreach($var AS $a) {
if (!empty($a)) {
echo $a;
}
}
Jeg sparer en linje, og dem der er tilbage er mere overskuelige. Men det er de mindste fordele!
Det andet sjov lyder som noget meget grumt forurening af namespace, og er ikke noget jeg kunne finde på at give til en kunde.
Skrevet søn. d. 29. juli 2001 kl. 19:07:35| #29
Ja samme kompleksitet, du sagde at du kunne optimerer koden hvilket din løsning ikke gør (en linie ændrer ikke kompleksiteten), at du så mener det er bedre stil er en helt anden sag.
Skrevet man. d. 30. juli 2001 kl. 07:22:41| #30
Du måler altså kompleksiteten i antal linjer? Så overvej dette:
foreach($var AS $a) if (!empty($a)) echo $a;
Det er slet ikke antal linjer der bekymrer mig, dem må man gerne svine med. Det er den \"snuskede\" kode der bekymrer mig ($var_name = \'var\'.$i; $$var_name), og forureningen af det globale namespace.
Hm. Nu kan det jo så være du synes den ene linje er mere overskuelig end de 5 der gør det samme. Men jeg kan fortælle dig, at min erfaring viser, at det er bedre at \"skrive det helt ud\".
Hvis du mener min kode ikke er bedre, skal du da have lov til det. Men så vil jeg gætte på, at du ikke er professionel udvikler. Du er i hvert fald ikke uddannet programmør. Right?
Skrevet man. d. 30. juli 2001 kl. 11:22:32| #31
Jeg måler ikke kompleksitet i antal linier.
Kompleksitet bliver målt ud fra antal gange man bliver nød til at gennemløbe inddata for at få det korrekte resultat. Feks tilhører både din og min kode O(n) hvilket ikke kan gøres hurtigere da man er nød til at kigge hele arrayet eller alle variablene igennem, en linie kode til eller fra ændre ikke dette (medmindre det er en for eller while løkke...).
Det var det eneste jeg bragte på banen da du påstod du kunne optimerer koden. Optimering er et spørgsmål om at gøre koden effektivere og dermed hurtigere, det du snakker om er programmeringsstil - noget ganske andet.
I mit specifikke tilfælde, som jo ikke står beskrevet nogen steder i spørgsmål 92921, kan det faktisk godt være smart at gøre det på min måde.
Jeg kan ikke se relevansen i at bringe uddannelse på banen, men hvis du vil vide det, kan jeg fortælle dig at jeg skal til at starte på 5. semester i civilingeniør i datateknologi på Odense Universitet.
Skrevet man. d. 30. juli 2001 kl. 13:10:08| #32
Skrevet tir. d. 31. juli 2001 kl. 08:30:03| #33
Jeg snakker altså om programmerings-stil. Det er IKKE godt nok at skrive kode der virker. Koden skal højest sandsynligt opdateres senere. Her kommer vi selvfølgelig ind på noget subjektivt.
Med kompleksitet ser jeg det ikke fra fortolkerens side, men fra programmørens.
Derudover har jeg lidt på fornemmelsen at arrays også er flinkere ved fortolkeren, men det er jeg nu egentlig ret ligeglad med i dette tilfælle.
Hvis dit specifikke tilfælle ikke står nogle stedet i dette spørgsmål, kan vi ikke diskutere det. Jeg diskuterer da også det eksempel der rent faktisk ER i dette spørgsmål. Og hvis vi er enige om at snakke om programmeringsSTIL, så burde du da med din (foreløbige) uddannelse kunne give mig ret. I har vel programmering med i pensum, ik\'?
Men vi kan da også snakke om det set fra fortolkerens side, selv om jeg så straks er langt mere usikker og ligeglad.
Jeg vil tro fortolkeren hellere vil oprette et array med 100 elementer, end at håndtere 100 variabler på denne måde. PHP er dog bygget op på en meget sjov måde på dette område, så det kan jeg ikke rigtigt overskue. Det er nok mere relevant i andre sprog som Java og C.
Skrevet tir. d. 31. juli 2001 kl. 11:04:53| #34
Umiddelbart når man kun har ovenstående spørgsmål at gå ud fra vil jeg give dig ret i at arrays er bedre stil.
Men jeg har også hele tiden snakket om kompleksitet...
Nå men det var vidst det.
Altid hyggeligt med en lille diskussion :-)
Skrevet tir. d. 31. juli 2001 kl. 17:44:22| #35
Kode kan altså også være kompleks at se på, og det skal man undgå.
Men jeg er da glad for at du vil give mit ret i at arrays er bedre stil, så er der da stadig håb for dig. ;-)