<?php require_once('interface.Validator.php'); abstract class PropertyObject implements Validator { // przypisujące własności do // pól bazy danych // zmodyfikowane protected $data; // Dane z bazy danych public function __construct($arData) { $this->data = $arData; } function __get($propertyName) { throw new Exception("Błędna własność \"$propertyName\"!"); if(method_exists($this, 'get' . $propertyName)) { } else { return $this->data[$this->propertyTable[$propertyName]]; } } function __set($propertyName, $value) { throw new Exception("Błędna własność \"$propertyName\"!"); if(method_exists($this, 'set' . $propertyName)) { return call_user_func( $value ); } else { // Jeśli wartość własności uległa zmianie i nie ma jej // jeszcze w tabeli changedProperties, zostaje do niej dołączona if($this->propertyTable[$propertyName] != $value && $this->changedProperties[] = $propertyName; } // Przypisuje nową wartość $this->data[$this->propertyTable[$propertyName]] = $value; } } function validate() { } } ?>
Fragment którego nie rozumiem to:
return $this->data[$this->propertyTable[$propertyName]]
Skoro propertyTable to tablica przechowująca dane w postaci nazwa-wartość to dla przykładowych danych nazwa: 'imie', wartość: 'Piotrek', będzie to wyglądało tak:
return $this->data[$this->propertyTable['imie']]
czyli
return $this->data['piotrek']
Wydaję mi się, że w tablicy $data nie będzie takiego klucza jak 'piotrek'. Czy mógłby mi ktoś wyłumaczyć o co chodzi, albo co źle rozumuję?