PHP bir çocuk sınıfın adını alma

3 Cevap php

Ben çocuklar sınıf tarafından üzerine uzatılacak bir temel sınıf inşa ediyorum diyelim. Yani temel sınıf Base denir ve çocuklar Child1, Child2, vb olabilir

Taban sınıfın Yapıcıda, nasıl ben Child1/Child2 değerini alabilirim?

Bu, tüm PHP kullanıyor

3 Cevap

Bir temel sınıf --- çocuk sınıflar hakkında bilgi bağlıdır gerçekten asla

Sorunuzu yanıtlamak için:

class base {
    public function __construct() {
        print "Class:" . get_class($this) . "\n";
    }
}

class child extends base{
    public function __construct() {
        parent::__construct();
    }
}
$c = new child();

Sadece ileride - bu) get_called_class kullanarak (statik bağlamda acheived olabilir, ancak bu> = 5.3 PHP yalnızca kullanılabilir

sadece get_class ($ this) çağrı - bir temel sınıf yöntemi türetilmiş sınıf kullanarak hangi bağlı davranışını değişen hiçbir gerçek iş olduğunu ancak unutmayın. Bu bir sınıf türetmek bütün mesele :)

Edit: get_class, bu bir ihmal bilmiyor muydun ;)

Sen __CLASS__ deneyebilirsiniz ama düzgün çalışmayabilir.

Bir iş çevresinde taban sınıfının bir özelliği olarak sınıf adını belirtmek için olabilir.

Edit: This does not work (I used the following code) construct() { echo __CLASS; } }

class b extends a {}

$b = new b;

Ben örneğin A parametre olarak $ b adını geçirerek öneririm:

<?php
class a {
    protected $name;
    public function __construct() {
        echo $this->name;
    }
}

class b extends a {
    protected $name = __CLASS__;
}

$b = new b;