[PHP] Waardes aan opvolgende variabelen toekennen?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik probeer in een lus een opvolgende reeks variabelen van een waarde te voorzien,
maar het lukt me niet de juiste syntax te vinden

code:
1
2
3
for($s = 0; $s < 8; $s++){
  $c.$s = $s;
}


Dit geeft foutmeldingen!

Het resultaat moet dan worden:
c0=0, c1=1, c2=2 etc. c7=7

Afin je begrijkt het vast inmiddels wel

Heeft iemand de juiste syntax voor mij om dit voor elkaar te krijgen?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Geen syntax, maar misschien moet je hier eens naar kijken.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
Array, dat is waar jij naar opzoek bent. Voor uitgebreide voorbeelden moet je even op de online manual, www.php.net, kijken.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Joh! Welke? ;)

In dit geval is dat vrij duidelijk, $c.$s is geen lvalue, maar normaal is het toch wel gangbaar als je je foutmelding erbij vermeldt.

Variabele variabelen zijn, zoals jij ze toe probeer te passen, wel mogelijk, maar in vergelijking met arrays zijn ze zo vies, dat je dat gewoon niet wil.

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
-NMe- schreef op maandag 14 november 2005 @ 15:35:
[...]

Joh! Welke? ;)

In dit geval is dat vrij duidelijk, $c.$s is geen lvalue, maar normaal is het toch wel gangbaar als je je foutmelding erbij vermeldt.

Variabele variabelen zijn, zoals jij ze toe probeer te passen, wel mogelijk, maar in vergelijking met arrays zijn ze zo vies, dat je dat gewoon niet wil.
Terecht gecorrigeerd waarvoor dank!

Probleem opgelost met array
code:
1
2
3
for($s = 0; $s < 8; $s++){
  $c[$s] = $s;
}


Groeten

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Goed, nu je het al met arrays opgelost hebt kan ik ook de oplossing met variabele variabelen wel laten zien. Maar nogmaals, nooit gebruiken! :P
PHP:
1
2
3
for($s = 0; $s < 8; $s++){
  ${$c.$s} = $s;
}

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

of als je helemaal stoer wilt zijn met eval
PHP:
1
2
for($s = 0; $s < 8; $s++){
  eval('$c'.$s} = $s;


http://at.php.net/eval

[ Voor 27% gewijzigd door Verwijderd op 14-11-2005 16:25 ]


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op maandag 14 november 2005 @ 16:23:
of als je helemaal stoer wilt zijn met eval
PHP:
1
2
for($s = 0; $s < 8; $s++){
  eval('$c'.$s} = $s;


http://at.php.net/eval
Ik vind evals viezer dan de code van -NMe- en dat heeft helemaal niks te maken met stoer zijn. Kan je wellicht verklaren waarom je deze blijkbaar 'beter' vind dan de oplossing van -NMe-?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Met eval kan het op die manier zelfs helemaal niet, want ook een functie is geen lvalue. ;)

Dit zou eventueel wel kunnen, maar is zo mogelijk nog viezer dan variabele variabelen:
PHP:
1
2
3
for ($s = 0; $s < 8; $s++){
  eval("$c$s = $s");
}

'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.


Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

rare manier van vars gebruiken zeg :/

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

En nu nog even de snelle versie om een array met een range te vullen:
PHP:
1
$c = range(0, 7);

;)

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

BtM909 schreef op maandag 14 november 2005 @ 16:26:
[...]

Ik vind evals viezer dan de code van -NMe- en dat heeft helemaal niks te maken met stoer zijn. Kan je wellicht verklaren waarom je deze blijkbaar 'beter' vind dan de oplossing van -NMe-?
hmm, ik was eigenlijk sarcastisch...

en daarbij was mijn code idd fout, niet dat er ook maar iemand wat aan heeft maar dit is de juiste code
PHP:
1
2
for($s = 0; $s < 8; $s++)
  eval('$c'.$s .'='. $s .';');


NMe, de code van jouw zou ook niet werken, omdat door de dubbele quote de waarde van $c in de string wordt gezet, deze bestaat niet. (en eval heeft blijkbaar een ; nodig aan het eind)

[ Voor 48% gewijzigd door Verwijderd op 15-11-2005 12:43 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Inderdaad, beetje slordig van me. Maar ik kan dan weer als excuus aandragen dat ik nooit maar dan ook nòòit eval gebruikt heb. :+
aex351 schreef op maandag 14 november 2005 @ 17:23:
rare manier van vars gebruiken zeg :/
Dat was het hele punt. :+ Daarom heb ik ook gewacht met het posten van de variabele variabelen-oplossing totdat het probleem op de nette manier opgelost was. :P

[ Voor 55% gewijzigd door NMe op 15-11-2005 14:15 ]

'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