php 4.3以后新增了一個魔術常量__class__,用來獲得當前class名稱。但是在下面的代碼中,卻不work。
class a {
function showclass() {
echo __class__;
}
}
class b extends a {}
a::showclass();
b::showclass();
這段代碼會打出兩個a,而不是預想中的ab。
下面這段代碼,利用debug_backtrace來獲得當前class名,可惜只能在php4上面work,到了php5以上,測試結果全部都是aa-___-
class a {
function showclass() {
$backtrace = debug_backtrace();
echo $backtrace[0]['class'];
}
}
class b extends a {}
補充一個可以在php4/php5下work的代碼
class a {
function showclass() {
$backtrace = debug_backtrace();
echo ((int)php_version> 4) ?
get_class($backtrace[0]['object']) : $backtrace[0]['class'];
}
}
class b extends a {}
新聞熱點
疑難解答