ホームページ  >  記事  >  php教程  >  PHPはクラス内の現在のクラス名を取得します

PHPはクラス内の現在のクラス名を取得します

WBOY
WBOYオリジナル
2016-06-21 09:04:591325ブラウズ

php 4.3 以降では、現在のクラス名を取得するために使用される新しいマジック定数 __CLASS__ が追加されました。しかし、以下のコードでは機能しません。

クラス A {
関数 showclass() {
echo __CLASS__;
}
}
クラス B は A を拡張します {}

A::showclass();
B::showclass();
このコードは、予期される AB の代わりに 2 つの A を出力します。

次のコードは debug_backtrace を使用して現在のクラス名を取得します。残念ながら、php5 以降でのみ動作します。テスト結果はすべて AA-___-

です。

class A {

function showclass() { $backtrace = debug_backtrace();
echo $backtrace[0]['class'];
}
}

class B extends A {}

php4/php5で動作するコードを追加します

class A {

function showclass() { $backtrace = debug_backtrace();
echo ((int)PHP_VERSION> 4) ?
get_class($backtrace[0]['object']) : $backtrace[0] ['クラス'];
}
}
クラス B は A {} を拡張します



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。