Toon posts:

[PHP] variabelen samenvoegen, maar dan anders.

Pagina: 1
Acties:
  • 73 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik weet dat je variabelen kunt samenvoegen tot 1 op deze manier:

code:
1
$nieuws = $var1.$var2;

geen probleem, maar wat als je met een for loopje nieuwe variabelenamen wilt creeëren, daar kom ik niet uit.

zoiets van:
code:
1
2
3
4
for($i=1; $i < 300; $i++)
{
$var.$i = $i;
}

waar dan dus 300 variabelen uitkomen, van $1 tot $300

[ Voor 13% gewijzigd door Verwijderd op 02-02-2006 16:07 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 12-04 21:32

TeeDee

CQB 241

Definieer "daar kom ik niet uit" :?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Peter
  • Registratie: Januari 2005
  • Laatst online: 12-04 23:19
Variablen mogen niet alleen uit cijfers bestaan, daarom zet ik er in dit voorbeeld een "n" voor.

PHP:
1
2
3
4
5
6
for( $i = 1; $i <= 300; $i ++ ){

    $name = "n" . $i;
    $$name = $i;

    }

Verwijderd

Topicstarter
nou als ik de nieuwe variabelen echo, dan lijken ze leeg, dus ik vraag me af of ie ze wel aanmaakt.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:36

crisp

Devver

Pixelated

Als ik jou was zou ik eens naar Arrays kijken; die zijn daar namelijk voor bedoelt ;)

Intentionally left blank


Verwijderd

PHP:
1
2
3
4
5
for($i=1; $i < 300; $i++)
{
$temp = $var.$i;
$$temp = $i;
}

Verwijderd

Topicstarter
geloof niet dat ik snap wat die 2 $$ doen, maar ik probeer het wel

[ Voor 66% gewijzigd door Verwijderd op 02-02-2006 16:14 ]


Verwijderd

PHP:
1
2
$name="test"
$$name ="aap"

Dan geldt:
code:
1
$test == "aap"

Maar met een Array is echt veel beter, zoals Crisp aangeeft...

[ Voor 12% gewijzigd door Verwijderd op 02-02-2006 16:15 ]


Verwijderd

Dan gaat PHP als variabele de inhoud van die andere variabele gebruik.

$var = "naam";
$i = "2";
$temp = $var.$i;

Hier bevat $temp dus "naam2", en als je dan $$temp = 3 doe je eigelijk $naam2 = 3.

Niet echt netjes maar soms bruikbaar.

[ Voor 14% gewijzigd door Verwijderd op 02-02-2006 16:17 ]


Verwijderd

Topicstarter
ik heb nu het volgende gemaakt,
hij maakt nu variabele $bericht101- $bericht111 aan met de waarde van $bericht, dat is goed.
Maar het gaat fout bij $startpos en $chars, aan het einde van de for lus moet ie de volgende waarde uit de array pakken en niet gewoon 1 erbij tellen als ie nu doet, kan dit?? ik heb allerlei variaties al geprobeerd, maar ik zie het niet..
PHP:
1
2
3
4
5
6
7
8
9
10
11
$breaks = array(0, 2, 1, 3, 2, 4, 1, 8, 12, 8, 2, 307);
$startpos = $breaks[0];
$chars = $breaks[1];
for ($i=101; $i <= 111; $i++)
    {
    $varbericht = "bericht";
    $index = $varbericht.$i; 
    $$index = substr ("$bericht", "$startpos" , "$chars");
    $startpos = $startpos + $startpos++;
    $chars++;
    }

[ Voor 18% gewijzigd door Verwijderd op 02-02-2006 16:41 ]


Verwijderd

Misschien moet je even uitleggen WAT je wilt? Je gooit hier een zooi code neer waar weinig touw aan te knopen is...

PHP:
1
$startpos = $startpos + $startpos++;

???

Verwijderd

Kijk eens goed naar mijn volgende demonstratie-scriptje, en je begrijpt misschien wat beter wat er gebeurd. Voer het maar eens uit op je server en kijk wat het resultaat is;

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function test() {

    // init
    $naam           = 'hans1978';
    $achternaam     = 'de_boer';

    // variabelen toekennen
    // (verre van netjes)
    $$naam          = 'a';
    ${$achternaam}      = 'b';
    for($i=0;$i<5;$i++) {
        ${$naam.$i} = $i * 5;
    }

    // werken met arrays
    // (netjes)
    $waarde[$naam]      = 'c';
    $waarde[$achternaam]    = 'd';
    for($i=0;$i<5;$i++) {
        $waarde[$naam.$i] = $i * 3;
    }

    return get_defined_vars();

}

// show vars
$data = test();
foreach($data AS $varnaam => $waarde) {
    if(is_array($waarde)) {
        foreach($waarde AS $key => $keywaarde) {
            echo '$'.$varnaam.'['.$key.'] = '.$keywaarde.'<br>';
        }
    } else {
        echo '$'.$varnaam.' = '.$waarde.'<br>';
    }
}


Daarnaast raadt ik je aan om een goed boek te lezen want aan je topic - en niet alleen deze, je hangt hier al een poosje rond ;-) - te zien mist er veel basiskennis. Op zich niet erg, maar het is niet de bedoeling dat wij je dat allemaal uit gaan leggen lijkt me (wil niet als moderator optreden natuurlijk, maar wil de boodschap wel even aan je overbrengen).

Een goed boek is het boek met ISBN nummer 9039516103 maar er zijn ongetwijfeld betere.
Daarnaast raad ik je aan om veel tutorials te doen, heel veel. Daar leer je ontzettend veel van, vooral door `mee te scripten met de tutorial`. Vervolgens kun je ook bestaande functies en classes van andere developpers uitpluizen, dat wil zeggen net zolang door de code lopen tot je precies begrijpt wat er gebeurd. Succes.

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12-04 20:20
Waarom $$ en geen array? Dat lijkt me in jouw situatie handiger dan die 'vieze' $$ oplossing.

ps. wat moet jouw stukje code uberhaupt doen? het is alles behalve duidelijk.

Verwijderd

Topicstarter
dankjewel, ik zal mijn basiskennis proberen te verbeteren...

Verwijderd

Topicstarter
Is er trouwens een forum voor beginners op tweakers of ergens anders, waar de 'beginners' elkaar kunnen helpen, dan zal ik hier geen mensen meer vervelen...

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 12-04 21:32

TeeDee

CQB 241

Verwijderd schreef op donderdag 02 februari 2006 @ 16:56:
Is er trouwens een forum voor beginners op tweakers of ergens anders, waar de 'beginners' elkaar kunnen helpen, dan zal ik hier geen mensen meer vervelen...
Het is geen schande om een beginner te zijn, dat is iedereen geweest. Het gaat hier gewoon om een stukje eigen inzet e.d. Geef aan wat je gedaan hebt, wat er niet werkte, wat je geprobeerd hebt, wat de evt. foutmelding is etc. etc.

Dan zijn mensen meer geneigd je te helpen.

TeeDee in "[PHP] variabelen samenvoegen, maar dan a..."
Je geeft geen evt. foutmelding, je geeft niet aan wat er fout gaat etc. etc. Vandaar ook "daar kom ik niet uit".

[ Voor 17% gewijzigd door TeeDee op 02-02-2006 17:05 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-04 17:49

NMe

Quia Ego Sic Dico.

Verwijderd schreef op donderdag 02 februari 2006 @ 16:56:
Is er trouwens een forum voor beginners op tweakers of ergens anders, waar de 'beginners' elkaar kunnen helpen, dan zal ik hier geen mensen meer vervelen...
Niet op GoT (aangezien GoT bedoeld is voor de gevorderde computergebruiker ;)), maar je kan altijd op BeginnersWeb wat ervaring opdoen. ;)

Verder is dit al redelijk vaak voorbij gekomen en er komt ook altijd dezelfde discussie uit, dus verder verwijs ik je graag naar de search. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.