Gå til innhold

Lage en variabel ut av noen echo linjer?


Anbefalte innlegg

Jeg har følgende script (utdrag):

 

$codes = explode(' ', $fc, 9);

function returnCode ()

{

static $i = -3;

global $codes;



$i++;

return $codes[$i];

}





echo returnCode().'';

echo returnCode().'#pw+';

echo returnCode().'+1#<br>';

echo returnCode().'+2#<br>';

echo returnCode().'+3#<br>';

echo returnCode().'+4#<br>';

echo returnCode().'+5#<br>';

echo returnCode().'+6#<br>';

echo returnCode().'+7#<br>';

 

Jeg ønsker at den linjen som blir returnert i den tredje linjen skal være en variabel ($tekst = teksten som blir returnert i linje 3) Er det mulig å få gjort på en eller annen måte?

 

Det beste hadde egentlig vært hvis jeg kunne gjort om alle de linjene der til variabler, slik at jeg hadde:

 

$linje1

$linje2

$linje3

$linje4

....

Lenke til kommentar
Videoannonse
Annonse

Hmm ...

Skjønner ikke helt hvorfor du har opprettet funksjonen returnCode(), når du hardkoder under likevel. Skjønner heller ikke hvorfor du starter indeksering på -3. Indeksering på $codes må jo starte på null.

 

Uten at jeg helt er med på hva du prøver på (samt at jeg er litt trøtt), kunne du kanskje gjøre noe slikt:

 

 


function returnData($fc)

{

   $codes = explode(' ', $fc,9);



   $newCodes = Array();

   for($i=0;$i<count($codes);$i++)

   {

       if($i==0) $newCodes[$i] = $codes[$i];

       if($i==1) $newCodes[$i] = $codes[$i] . '#pw+';

       if($i>1)   $newCodes[$i] = $codes[$i] . '+' . ($i-1) . '#<br>';

   }

   

   return $newCodes;

}



//Bygger data

$fc = "a b c d e f g h i";

$newCodes = returnData($fc);



//Skriver ut data

for($i=0;$i<count($newCodes);$i++) 

{echo($newCodes[$i]);}

Lenke til kommentar

Grunnen til at scriptet er litt rart er at jeg ikke har skrevet scriptet selv... (Jeg ville aldri funnet på å skrive rare script!! :lol: )

 

Men jeg tror faktisk at det må være sånn for å fungere, for ditt forslag returnerte ingen av kodene...

 

Men jeg tror ikke du skjønte heller helt hva jeg mente.

 

Når jeg bruker:

 

echo returnCode().''; 

echo returnCode().''; 

echo returnCode().'+1#<br>'; 

echo returnCode().'+2#<br>'; 

echo returnCode().'+3#<br>'; 

echo returnCode().'+4#<br>'; 

echo returnCode().'+5#<br>'; 

echo returnCode().'+6#<br>'; 

echo returnCode().'+7#<br>';

 

Får jeg opp 7 koder. (vet ikke hvorfor de to første må være der.

 

Poenget mitt er at jeg vil ha kode nr. 1 som en variabel!

 

Altså, slik at jeg kan f.eks senere i scriptet ha "echo $kode" for å vise den koden.

Lenke til kommentar

Ja det er det jeg mener, men det funker ikke... :(

 

Altså, om dette hadde virket, er det dette jeg ønsker å oppnå:

 

$kode = echo returnCode().'';

$kode0 = echo returnCode().'';

$kode1 = echo returnCode().'+1#<br>';

$kode2 = echo returnCode().'+2#<br>';

$kode3 = echo returnCode().'+3#<br>';

$kode4 = echo returnCode().'+4#<br>';

$kode5 = echo returnCode().'+5#<br>';

$kode6 = echo returnCode().'+6#<br>';

$kode7 = echo returnCode().'+7#<br>';

Lenke til kommentar
Ja det er det jeg mener, men det funker ikke... :(

 

Altså, om dette hadde virket, er det dette jeg ønsker å oppnå:

 

$kode = echo returnCode().'';

$kode0 = echo returnCode().'';

$kode1 = echo returnCode().'+1#<br>';

$kode2 = echo returnCode().'+2#<br>';

$kode3 = echo returnCode().'+3#<br>';

$kode4 = echo returnCode().'+4#<br>';

$kode5 = echo returnCode().'+5#<br>';

$kode6 = echo returnCode().'+6#<br>';

$kode7 = echo returnCode().'+7#<br>';

 

Tror du stokker kortene litt her.

Echo er kommandoen for å skrive data til skjerm.

 

En variabel brukes kun til å holde på data, ikke prosessere dem.

Dvs:

 

$kode0 = returnCode()."";

 

..legger innholdet fra returnCode() inn i variabelen.

Ønsker du å skrive ut innholdet til skjerm bruker du echo().

 

Dvs:

echo($kode0) --> Skriver ut resultatet fra kallet til returnCode()

 

 

Ønsker du å skrive til skjerm og lagre i variabel på en og samme gang?

Hva ligger egentlig i $fc? Skal du bare skrive til skjerm, eller skal du kommunisere med noe?

 

Kom med litt mer info om hva du prøver å gjøre her, så blir det litt enklere å hjelpe.

Lenke til kommentar
Ja det er det jeg mener, men det funker ikke... :(

 

Altså, om dette hadde virket, er det dette jeg ønsker å oppnå:

 

$kode = echo returnCode().'';

$kode0 = echo returnCode().'';

$kode1 = echo returnCode().'+1#<br>';

$kode2 = echo returnCode().'+2#<br>';

$kode3 = echo returnCode().'+3#<br>';

$kode4 = echo returnCode().'+4#<br>';

$kode5 = echo returnCode().'+5#<br>';

$kode6 = echo returnCode().'+6#<br>';

$kode7 = echo returnCode().'+7#<br>';

 


<?php

$codes = explode(' ', $fc, 9); 

function returnCode () 

{ 

  static $i = -1; 

  global $codes; 



  $i++; 

  return $codes[$i]; 

} 



for ($c=0; $c<=7; $c+=1)

 $kode[$c]=returnCode().'+1#<br>';

?>

 

Bare et forslag

Lenke til kommentar
Fungerte ikke det heller... :( Ingenting kom frem.

 

Ehh det er fordi den rutinen ikke skriver ut noe. Prøv å var_dump($kode) eller print_r($kode) så vil du se at verdiene ligger der. Hvis du vil skrive dem ut så er det bare å skrive dem ut med f.eks.


foreach ($kode as $linje)

 echo $linje.'<br>';

 

Hvis dette er mystisk for deg så vil jeg anbefale å kjøpe en bok eller lete på nettet etter artikler om grunnleggende programmeringsteknikk.

Lenke til kommentar

Jeg brukte echo $kode :oops:

 

Men omsider, fikk jeg det til omtrent slik jeg ville, ved å bruke den siste biten av koden din. Jeg dreit i alle de andre kodene, siden det egentlig kun er den første som er nødvendig.

 

Men jeg har en mistanke om at scriptet gjør en del unødvendige ting nå, siden jeg kun skal ha den første.

 

Her er koden jeg bruker nå, som viser akkurat det jeg vil ha ($helegreien er den variabelen jeg hele tiden har vært på jakt etter).

 

$codes = explode(' ', $fc, 9); 

function returnCode () 

{ 

  static $i = -1; 

  global $codes; 



  $i++; 

  return $codes[$i]; 

} 



for ($c=0; $c<=0; $c+=1)

 $kode[$c]=returnCode();



foreach ($kode as $linje) 



$helegreien = "<b>#pw+$linje+1#</b>";



echo $helegreien;

 

Er det noe som kan forbedres i den koden? (tenker spesielt på "for ($c=0; $c<=0; $c+=1)" som kanskje ikke er helt nødvendig?)

 

Tusen takk for hjelpen!! :woot:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...