質問

私は、パラメータとして渡されたクラスを取得する機能を持っています。私は、文字列として渡されたクラスのクラス名を取得したいと思います。

私は渡されたクラスでこのメソッドを入れてみました

function getClassName()
    {
        return __CLASS__;
    }

が、クラスが拡張された場合、私は、これはサブクラスの名前を返すと仮定が、それはまだ私は一種の奇妙見つけるスーパークラスの名前を返します。

だから、パラメータとして関数に渡されたの$ VARを与えられ、クラス名の文字列を取得する方法はありますか?

感謝!!

役に立ちましたか?

解決

あなたがしようとしている正確に何をすべきであると、 get_class を参照してください。達成するために。

$class_name = get_class($object);

他のヒント

名前空間なしでクラス名を取得する方法を

最も簡単な方法はあります:

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

またはにpreg_replaceと

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

__ CLASS __メソッドが実装されたクラスの名前を返すと。

あなたが使用することができ、その後渡されたオブジェクトのクラス名を取得したい場合:

get_class($param);
あなたがPHP5を使用している場合は、

また、設けられた反射クラスも便利です。

を使用 get_classするます:

$className = get_class($object);

ストレートPHPのドキュメントから:のhttp://uk.php .NET /マニュアル/ 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"

あなたも渡されるクラス(ES)これを返すにメソッドを追加することができます:

のvar_dump(get_called_class());

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top