PHP:渡されたVARのクラス名を取得しますか?
質問
私は、パラメータとして渡されたクラスを取得する機能を持っています。私は、文字列として渡されたクラスのクラス名を取得したいと思います。
私は渡されたクラスでこのメソッドを入れてみました
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());
所属していません StackOverflow