Hey mensen,

Ik probeer wat mee bezig te gaan met classess. Als doel heb ik genomen het basissyteem van het spel Diablo II na te gaan maken (iig iets in die richting).

Ik zit echter met iets (wat misschien niet eens zo zeer OOP is, maar iets met multi-dimensional arrays).

Hier is de code:


<?php
    $playerA = new playerNew();
    $playerA->playerCreate('Akara', 'Sorcerer');
    $playerB = new playerNew();
    $playerB->playerCreate('Norrec', 'Barbarian');
    
    $battlePartitioners = array(
    	'party1' => array(
    		'partitioner1-1' => $playerA
    	),
    	'party2' => array(
    		'partitioner2-1' => $playerB
    	)
    );
?>

<?php
    foreach ($battlePartitioners['party1'] as $a => $value) {
    	echo $a.'<br/><br/>';
    	
    	foreach ($value as $a1 => $value1) {
    		echo $value1.'<br/>';
    	}
    	
    	echo '<pre>';
    	print_r($value);
    	echo '</pre>';
    }
?>


De output geeft:


partitioner1-1

Akara
Sorcerer
0
1
40
74
35
10
25
10
35
playerNew Object
(
    [name] => Akara
    [profession] => Sorcerer
    [experience] => 0
    [level] => 1
    [life] => 40
    [stamina] => 74
    [mana] => 35
    [strength] => 10
    [dexterity] => 25
    [vitality] => 10
    [energy] => 35
)



Maaar... Nu wil ik die 2e foreach niet gebruiken maar direct de array benaderen. Echter werkt dit niet:


<?php
    echo $value['playerNew Object']['name'];
?>


Mijn vraag: waarom werkt dat niet? Betekend dat "Object" uit de print_r iets anders of is dat echt een deel van de array naam. Kan de spatie misschien het probleem zijn?
'playerNew Object' is geen index maar aanduiding dat het een object is van playerNew
En hoe roep ik die dan aan? Foreach krijgt het er wel uit dus ik neem dat het wel een "array" met gegevens is?
OOP is er totaal niet in jouw geval. tip:
http://www.phphulp.nl/php/tutorials/8/632/

edit: een eigenschap van een object roep je zo aan: $object->eigenschap;

edit2: en als het in een array zit werkt het hetzelfde:

$arr['index']['object']->eigenschap;
Ok bedankt. Het was dus gewoon simpel: echo $value->name;.

Ik ga de materie die je hebt aangereikt doornemen.

Bedankt

Reageren