Avatar billede limes_planum Praktikant
23. september 2007 - 11:35 Der er 12 kommentarer og
1 løsning

Smelt to strenge sammen

Hvorfor kan jeg ikke det her:

for ($i=1;$i<11;$i++){
//sj1
$sjs="$sj";
$is=strval($i);
$samstr=implode($sjs,$is);
echo"&samstr=$samstr<br>";
switch ($samstr)
{
... etc

- er lidt i tvivl om jeg skal bruge implode_assoc i stedet og hvordan
Avatar billede showsource Seniormester
23. september 2007 - 11:40 #1
af hva' vil du?
Og hvor får du $sj fra?
Avatar billede limes_planum Praktikant
23. september 2007 - 11:56 #2
Ok - for at kunne 'switche' på en lang række textfield-navne (10 stk sj1 til sj10) fra en form, skal jeg have bundet det to tekststumper; $sjs og $is sammen først. Lige nu outputter min echo kun $is's værdi? :-S

Alternativt skal jeg til at udflette/ødelægge min forløkke hvilket jo gør min kode næsten 10 gange så lang ... :-)
Avatar billede limes_planum Praktikant
23. september 2007 - 11:56 #3
"de to tekststumper"
Avatar billede showsource Seniormester
23. september 2007 - 12:15 #4
er stadig ikke helt med ...

Poster du til den fil hvor du vil bruge switch?

Kan du ikke blot bruge "samme navn", f.eks. felt_1, felt_2 etc.
Avatar billede limes_planum Praktikant
23. september 2007 - 12:47 #5
[sku evt have slænget flere point ud da sp måske er ret kompliceret alligevel]

Poster til en $PHP_SELF. Se mere af den fulde php-kode her i tidligere spørgsmål: http://www.eksperten.dk/spm/797702.

Har selv fundet del af løsningen nu:

for ($i=1;$i<11;$i++){
//sj1
$sjs='$sj';
$is=strval($i);
$arrayt = array($sjs,$is);
$samstr=implode($arrayt);
echo"&samstr=$samstr<br>";
switch ($samstr)
{
case "?":
echo"?er<br>";
... etc.

- så langt så godt. Problemet er nu at switchen ikke læser $samstr som en slags C++-pointer - jeg kan ikke gå ind og lave en eval på $samstr eller '$sjs med $is', hvilket jeg ellers kan gøre i Actionscript således:

switch (eval(sjs+i))

-(har lige prøvet det i flash og det virker...)
[alternativt skulle det jo være: switch (eval($sjs+$i)) - i php selvf.]

Kunne være lækkert om der fandtes en slags tekst/streng-eval i php også?
Avatar billede showsource Seniormester
23. september 2007 - 12:54 #6
$samstr=implode("",$arrayt);
eval('?>'. $samstr .'<?php ');
Avatar billede limes_planum Praktikant
23. september 2007 - 13:01 #7
Jeg lukker nu dette spørgsmål da jeg har løst mit primære problem - showsource: om du har lyst til at hjælpe mig videre i processen med det sekundære pointer-problem kan du dette v/: http://www.eksperten.dk/spm/797772

- men tak for indsatsen ved det her sp alligevel :-) ...
Avatar billede limes_planum Praktikant
23. september 2007 - 13:02 #8
ok - vi røg forbi hinanden tidsmæssigt/opd.-mæssigt - gir det lige en chance til...
Avatar billede limes_planum Praktikant
23. september 2007 - 13:07 #9
for ($i=1;$i<11;$i++){
//sj1
$sjs='$sj';
$is=strval($i);
$arrayt = array($sjs,$is);
$samstr=implode($arrayt);
echo"&samstr=$samstr<br>";
switch (eval('?>'. $samstr .'<?php '))
{
...

- er desværre en no-go.

Jeg har reevalueret mit udtryk: 'Kunne være lækkert om der fandtes en slags tekst/streng-eval - der kan bruges i en switch-funktion - i php også?'
Avatar billede limes_planum Praktikant
23. september 2007 - 13:08 #10
- eller 'switch-sætning' for at være mere præcis...
Avatar billede showsource Seniormester
23. september 2007 - 13:11 #11
Arghh, tror ikke du kan bruge eval() som argument i din switch

Forstår stadig ikke præcis hvad du gerne vil :O)

Og b.t.w. ingen point til mig, ellers tak.
Avatar billede limes_planum Praktikant
23. september 2007 - 13:28 #12
Ja - desværre ser det sådan ud - et sidste desperat forsøg på et andet argument i switchen så således ud:

for ($i=1;$i<11;$i++){
//sj1
$sjs='$sj';
$is=strval($i);
$arrayt = array('.',$sjs,$is,'.');
$samstr=implode($arrayt);
echo"&samstr=$samstr<br>";
$samstrg=explode(".", $samstr);
echo"&samstrg=$samstrg<br>";
switch (explode(".", $samstr))
{
...
Output v/ 'echo"&samstrg=$samstrg<br>";' : 'Array'

- Af hensyn til brugere v/: http://www.eksperten.dk/spm/797772 lukkes det så nu i stedet.
Avatar billede limes_planum Praktikant
23. september 2007 - 13:32 #13
Switchen læser kun værdien: $samstr - og ikke dens henviste streng-værdi: "$sj1"

- jeg vil give det nye sp en mindre chance, men det ender nok hurtigt med at jeg folder forløkken ud i 10 switch-sætninger. - desværre
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester