Toon posts:

[php] kan dit (array)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dit is een klein stukje code... hier duw ik een array in een array... ik ben me alleen af aan het vragen of dit kan en als dit kan hoe ik hem moet uitlezen.
code:
1
2
3
4
5
$variables = explode( " ", $template_file[$tag_line_pointer] );

$data[$block_identifier]->variables = $variables;

$out .= $data[$block_identifier]->$variables[$ii];

ik krijg nu:
code:
1
2
3
Warning: Undefined variable: variables in ./create_channel.html on line 272

Warning: Undefined property: in ./create_channel.html on line 272

lijn 272 is de laatste lijn van dit stukje... kan dit? hoe moet ik hem dan uitlezen?

  • Grum
  • Registratie: Juni 2001
  • Niet online
Dit is geen array in een array hoor:
code:
1
$data[$block_identifier]->variables = $variables;

Dat is een array van StdClass Objecten met 1 'var' variables

Een array in een array bereik je door dit te doen:
code:
1
$data[$block_identifier]['variable'] = $variables;

Tip:

Let er HEEL goed op dat je niet

$classInstance->$var

gebruikt terwijl je

$classInstance->var

wilt gebruiken!

Dat is een wereld van verschil, het eerste stukje wil namelijk de var $var uitlezen uit $classInstance ipv de var 'var'.

Daarnaast ondersteunt php deze syntax volgens mij niet en moet je ipv
code:
1
$data[$block_identifier]->$variables[$ii];

dit
code:
1
2
$tmpVar = $data[$block_identifier];
$tmpVar->variables[$ii];

doen.

Ik weet dit alleen niet zeker en ik zal et eventjes voor je controleren zometeen :)

[Update]

PHP ondersteunt het wel, deze code werkt gewoon.
code:
1
2
3
$theObject->var = array(1,2,3);
$theArray[] = $theObject;
print_r($theArray[0]->var);

Verwijderd

Topicstarter
Oke dat klopt... maar variables is een array, kan ik die niet zo benaderen zoals ik het nu doe?

$variables[$ii] geeft mooi de goede tekst weer.

$tmpVar = $data[$block_identifier];
$out .= $tmpVar->$variables[$ii];

werkt niet... (Ik kan het fout doen...)

  • Grum
  • Registratie: Juni 2001
  • Niet online
lees aub mijn 'Tip' stukje.

Verwijderd

Topicstarter
Je hebt inderdaad gelijk ik had een typefout erin staan :'(

$out .= $data[$block_identifier]->$variables[$ii];

de $ voor variables moet weg GVD maar hartstikke bedankt

net voordat jij je stukje poste dat werkte had ik de fout gevonden adhv je TIP...


Dit werkt ook
$out .= $data[$block_identifier]->variables[$ii];

  • Grum
  • Registratie: Juni 2001
  • Niet online
Btw .. gebruik niet '->' ipv named arrays omdat je het mooier vindt staan.

Het is namelijk 50% slomer om objecten te gebruiken.

Verwijderd

Topicstarter
uh..... named array :? geen idee wat dat is...

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Grum:
Het is namelijk 50% slomer om objecten te gebruiken.
50%? Lijkt me wel erg veel...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Grum
  • Registratie: Juni 2001
  • Niet online
drm: 50%? Lijkt me wel erg veel...

Ok ok het is ~35% :)

http://erik.powerdns.com/got/test3.php (deze url laad ~3-4 sec)
http://erik.powerdns.com/got/test3.phps

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-09 18:58
Op maandag 08 april 2002 14:04 schreef ShockWave het volgende:
uh..... named array :? geen idee wat dat is...
Associatieve arrays dus:

$blaat['blabla'];

In tegenstelling tot numerieke arrays:

$blaat[5];

Eigenlijk maakt het niet zoveel uit in PHP, want $blaat[0] en $blaat['0'] zijn hetzelfde.

Je kan dus $blaat[blabla] doen, dit werkt, maar wordt afgeraden omdat 'blabla' misschien in de toekomst een reserved word kan worden, zet dus altijd statements tussen de [].

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 21:37
Een array in een array ?
Volgens mij wordt er in jouw post meer met objecten gewerkt :{

$bla = array(array('var' => 'content', 'var2' => 'content'), 'blah', array('januari', 'februari'));
Pagina: 1