PHP: geçti değişkenin sınıf adını al?

6 Cevap php

Ben bir parametre olarak geçirilen bir sınıf alır bir işlevi var. Ben bir dize olarak geçirilen sınıfın sınıf adını almak istiyorum.

Ben geçti sınıfında bu yöntemi koyarak çalıştı:

function getClassName()
    {
        return __CLASS__;
    }

ama sınıf bu alt sınıfın adını dönecekti kabul uzatılabilir ama yine de ben tür garip bulmak süper sınıfın adını döndürür eğer.

Yani parametre olarak bir işleve geçirilen bir $ var verilmiş, sınıf adının bir dize almak için bir yolu var mı?

Teşekkürler!

6 Cevap

get_class, size ulaşmak için çalışıyoruz tam olarak ne görmek olmalı.

$class_name = get_class($object);

Ad olmadan Class adını almak nasıl basit yolu:

$class = explode('\\', get_called_class());
echo end($class);

Veya preg_replace ile

echo preg_replace('/.*([\w]+)$/U', '$1', get_called_class());

__ SINIF __ yöntemi içeri uygulandığı sınıfın adını dönüşü ile

Eğer aktarılan nesnenin sınıf adını almak istiyorsanız, o zaman kullanabilirsiniz:

get_class($param);

Eğer PHP5 kullanıyorsanız da, daha sonra sağlanan Yansıma dersleri de yararlıdır.

Kullan get_class:

$className = get_class($object);

Düz php docs: http://uk.php.net/manual/en/function.get-class.php

<?php

abstract class bar {
    public function __construct()
    {
        var_dump(get_class($this));
        var_dump(get_class());
    }
}

class foo extends bar {
}

new foo;

?>

The above example will output:

string(3) "foo"
string(3) "bar"

Ayrıca bu iade geçti Sınıf (lar) içine bir yöntem ekleyebilirsiniz:

var_dump (get_called_class ());