Bu örnekte, önce bir temel sınıf ve bu sınıfın bir türevini tanımlayacağız. Temel sınıf, genel olarak bitkileri, yenebilir olup olmadıkları ve renkleri ile tanımlayacak. Lahana alt sınıfı, sebzeyi pişirmek için bir yöntem ile pişirilmiş olup olmadığını bulan bir başka yöntem ekleyecek.
Örnek 1 sınıflar.inc
<?php
// Üye özellikler ve yöntemlerle temel sınıf
class Bitki {
var $yenir;
var $renk;
function __construct($yenir, $renk="yeşil")
{
$this->yenir = $yenir;
$this->renk = $renk;
}
function yenir_mi()
{
return $this->yenir;
}
function ne_renk()
{
return $this->renk;
}
} // Bitki sınıfının sonu
// temel sınıfı türetelim
class Lahana extends Bikti {
var $pişmiş = false;
function __construct()
{
parent::__construct(true, "yeşil");
}
function pişir()
{
$this->pişmiş = true;
}
function pişmiş_mi()
{
return $this->pişmiş;
}
} // Lahana sınıfının sonu
?>
Bu sınıflardan iki nesne örnekleyip, ata sınıfları dahil bunlar hakkındaki tüm bilgiyi çıktılayacağız. Ayrıca, değişkenlerin çıktılarını güzelleştirmek için bazı ek işlevler tanımlayacağız.
Örnek 2 dnm.php
<pre>
<?php
include "sınıflar.inc";
// biçemleme işlevleri
function print_vars($obj)
{
foreach (get_object_vars($obj) as $prop => $val) {
echo "\t$prop = $val\n";
}
}
function print_methods($obj)
{
$arr = get_class_methods(get_class($obj));
foreach ($arr as $method) {
echo "\t$method() işlevi\n";
}
}
function class_parentage($obj, $class)
{
if (is_subclass_of($GLOBALS[$obj], $class)) {
echo "$obj nesnesinin ait olduğu sınıf: " . get_class($GLOBALS[$obj]);
echo ", alt sınıf ise: $class\n";
} else {
echo "$obj nesnesi $class alt sınıfına ait değildir.\n";
}
}
// 2 nesne örnekleyelim
$sebze = new Bitki(true, "mavi");
$tombul = new Lahana();
// Nesne bilgilerini basalım
echo "sebze: " . get_class($sebze) . " sınıfında\n";
echo "tombul: " . get_class($tombul) . " sınıfında";
echo ", ATA sınıfı " . get_parent_class($tombul) . "\n";
// Sebze özelliklerini gösterelim
echo "\nsebze: Özellikler\n";
print_vars($sebze);
// ve tompul yöntemleri
echo "\ntombul: Yöntemler\n";
print_methods($tombul);
echo "\nEbeveynler:\n";
class_parentage("tombul", "Lahana");
class_parentage("tombul", "Bitki");
?>
</pre>
Yukarıdaki örnekte önemli şeylerden biri, $tombul nesnesinin Lahana sınıfının bir örneği, Lahana sınıfının ise Bitki sınıfının ise bir alt sınıfı oluşudur. Bu bakımdan betiğin son kısmının çıktısı şöyle olur:
[...] Ebeveynler: tombul nesnesi Lahana alt sınıfına ait değildir. tombul nesnesinin ait olduğu sınıf: Lahana, alt sınıf ise: Bitki