class Page {
public $title = '';
public $keywords = array();
public $content = '';
// etc.
}
$page = new Page();
echo '<title>' . $page->title . '</title>';
echo $page->content;
Yoksa sebat ile değiştirilmiş, ya da her türlü izin, verilerinizi korumak için /-set olsun erişimcilerini ve benzeri kullanabilirsiniz. Bu tembel başlatma ve tembel yazı (ikincisi için uygun bir terim varsa emin değilim) için izin verir. Örnek:
class Page {
private $data = array('title' => '', 'keywords' => array(), 'content' => '');
public __get($name) {
if(isset($this->data[$name]))
return $this->data[$name];
/* You probably want to throw some sort of PHP error here. */
return 'ERROR!';
}
}
$page = new Page();
echo '<title>' . $page->title . '</title>';
echo $page->content;
(overloading in the PHP5 manual daha fazla bilgi için bakınız.)
Eğer $ veri üyelerini gizlemek hatta onları değiştirebilir veya yenilerini ekleyebilirsiniz ($ sayfa-> contentHTML örneğin, HTML markdown dönüştürebilir).
Adını kullanarak _pageData
sayfa sınıf için gereksiz olduğunu. Eğer bilgi ($ CurrentPage-> veri vs $ CurrentPage-> _pageData) tekrar ediyorsun yüzden zaten, bu bir sayfa olduğunu biliyorum.
Ben de ilişkisel diziler bu tür bir şey için biraz daha karışık buluyorum, ama gerçekten dinamik bir sistem istiyorsanız onlar gerekli olabilir. Ne olursa olsun, bu size (sizin için liste kullanabileceğiniz kolay bir veritabanı sorgu, dışında ()) için dizi istediğini varsayarak, ($member = 'title'; echo $page->$member; // echoes $page->title
) ismiyle sınıf üyelerine erişmek için şablon sistemi uygulayabilirsiniz .