<?php
// sınıfları yüklemek için otomatik yükleyiciyi kaydet
spl_autoload_register();
function printProperties($obj)
{
foreach (get_object_vars($obj) as $prop => $val) {
echo "\t$prop = $val\n";
}
}
function printMethods($obj)
{
$arr = get_class_methods(get_class($obj));
foreach ($arr as $method) {
echo "\t$method() işlevi\n";
}
}
function objectBelongsTo($obj, $class)
{
if (is_subclass_of($obj, $class)) {
echo "$obj->isim, $class sınıfının alt sınıfı olan ";
echo get_class($obj), " sınıfındandır.\n";
} else {
echo "$obj->isim, $class sınıfının alt sınıflarından değildir.\n";
}
}
// 2 nesne örnekleyelim
$sebze = new Bitki("belki", "yeşil", "sebze");
$tombul = new Lahana("evet", "mavi", "Brüksel Lahanası");
// 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";
// Özellikleri gösterelim
echo "\nsebze: Özellikler\n";
printProperties($sebze);
echo "\n\ntombul: Özellikler\n";
printProperties($tombul);
// ve tompul yöntemleri
echo "\ntombul: Yöntemler\n";
printMethods($tombul);
echo "\nEbeveynler:\n";
objectBelongsTo($tombul, Lahana::class);
objectBelongsTo($tombul, Bitki::class);
?>
Yukarıdaki örneklerin çıktısı:
sebze: Bitki sınıfında
tombul: Lahana sınıfında, ATA sınıfı Bitki
sebze: Özellikler
yenir = belki
renk = yeşil
isim = sebze
tombul: Özellikler
pişirilir = evet
yenir = evet
renk = mavi
isim = Brüksel Lahanası
tombul: Yöntemler
__construct() işlevi
pişirilir() işlevi
pişirilir_mi() işlevi
yenir_mi() işlevi
ne_renk() işlevi
ismi() işlevi
Ebeveynler:
Brüksel Lahanası, Lahana sınıfının alt sınıflarından değildir.
Brüksel Lahanası, Bitki sınıfının alt sınıfı olan Lahana sınıfındandır.
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.