[PHP] Tablica obiektów

0

Jak w php zrobić tablicę klas? Siedzę nad tym już parę godzin, ale za nic nie chce działać. Mam sobie prostą klasę:

class account{
	var $passwordhash, $accesslevel, $created, $lastlogin, $gametime, $characters, $ips;
}

i tworzę asocjacyjną tablicę obiektów account, ale jak odwołuję się do jakiegoś pola klasy, to automatycznie wszystkie pola ustawiają się na tą wartość. O co chodzi?

0

nie powinno sie odwolywac bezposrednio do pol klasy, ale moze sproboj

var $wart1;
var $wart2;
var $wart3;

za kazdym razem

var

, poza tym to dziwne ze wszystkie ....

a mozesz wkleic kod zywcem z php??

0
function accounts_load($filename){		
							
	function parsercallback($name, $attribs, $content){
		global $accounts;	
		global $currentuser;	 
		if($name=='username'){
			$currentuser=$content; 
			$accounts[$currentuser]=new account;  
		}					  
		if($name=='cryptPassword'){
			$accounts[$currentuser]->$passwordhash=$content;	
		} 
		if($name=='accessLevel'){
			$accounts[$currentuser]->$accesslevel=$content;	
		} 				
		if($name=='created'){
			$accounts[$currentuser]->$created=$content;	
		} 				 
	}	
			
	$currentuser='';
	$parser=new Path_parser();			
	$parser->set_handler('/accounts/account/username', 'parsercallback');
	$parser->set_handler('/accounts/account/cryptPassword', 'parsercallback');
	$parser->set_handler('/accounts/account/accessLevel', 'parsercallback');
	$parser->set_handler('/accounts/account/created', 'parsercallback');
	$parser->parse_file($filename);
}

$accounts to tablica. I jestem pewien, że w parsercallback() są zwracane dobre wartości.

// Dopisane
Dodam jeszcze, jak to wyświetlam:

foreach($accounts as $name=>$value){
 
	echo($name.' ('.$accounts[$name]->$accesslevel.') - '.$accounts[$name]->$passwordhash.'<br>');

}

// Dopisane 2
Dodałem sobie do klasy dwie funkcje, czytającą i zapisującą zmienne, żeby nie odwoływać się do pól bezpośrednio. Efekt identyczny...

	function writevalue($var, $value){
		$this->$$var=$value;
	}						
	
	function readvalue($var){
		return $this->$$var;
	}

// Dopisane 3
Fak, ale przeoczenie... [wstyd] Dzięki!

0
thenkles napisał(a)
......
$accounts[$currentuser]->$passwordhash=$content;
......

i tu jest blad!!
Gdzie?? "$passwordhash"
jak juz odnosisz sie do pol jakiejs klasy nie piszesz $
czyli jak w klasie chcesz sie odwolac do jej zmiennych nie napiszesz

$this->$zmienna

tylko $this->zmienna


czyli powinno byc
```php
......
$accounts[$currentuser]->passwordhash=$content;
......

1 użytkowników online, w tym zalogowanych: 0, gości: 1