Podivné chování Nette\ArrayHash

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MzK
Člen | 127
+
0
-

Verze Nette: 2.0.6

<?php
class UsersModel {//UsersModel (zkraceny)
	public static function createHashPass($pass) {
		return md5($pass.'key');
	}
	public static function save($d) {
		$d['pass'] = UsersModel::createHashPass($d['pass']); //do db ukladam HASH
		dibi::query('INSERT INTO users ', $d);
		return dibi::getInsertId();
	}
}
?>
<?php
//Presenter
public function UsersSubmited(Form $form) {
	$d = $form->getValues(); //v $d mám pole Nette\ArrayHash.
	//ZDE dump($d) vypise jeste puvodni heslo
	$id = UsersModel:save($d); //ty data chci ulozit do databaze
	//ZDE dump($d) vypise HASH hesla. Jak muze metoda ovlivnit externi promenne?
}
?>

Pokud převedu ArrayHash na klasické pole $d = (array) $d;, tak to funguje dobře (změny v metodě se neprojeví mimo metodu).
Nevím jestli je to bug, nebo featura, dostavil se WTF pocit (jak může metoda ovlivnit proměnné mimo metodu).

voda
Člen | 561
+
0
-

Protože objekty se vždy předávají referencí. manuál

MzK
Člen | 127
+
0
-

aj, díky za objasnění, mně to nedocvaklo, že to už není pole hodnot ale objekt hodnot.