PHP获取当前类名、函数名、方法名

已邀请:

liuliangsong - 80后IT民工

赞同来自:

获取当前的类名、函数名、方法名常量(在类内部调用):

  • __CLASS__  获取当前类名(如后面代码中的:Aiezu)

  • __FUNCTION__ 当前函数名(如后面代码中的:test)

  • __METHOD__  当前方法名(如后面代码中的:Aiezu::test)


 
获取对象的类名、对象的所有方法、对象的所有变量:

  • get_class(class name) 获取类名,不带参数在类内部调用,带一个类实例化对象的参数可以在类外部调用。

  • get_class_methods(class name) 取得类的所有的方法名,返回数组,参数为类名字符串;

  • get_class_vars(class name)  取得类的所有变量名,返回数组,参数为类名字符串;


 
测试代码:
<?php
class Aiezu {
    public $name = '爱E族';
    public $url = 'http://aiezu.com';
    public static function action() {
    }
    public function test() {
        echo sprintf("下面内容在Aiezu类内部输出:\n");
        echo sprintf("__CLASS__    -> %s\n", __CLASS__);
        echo sprintf("__FUNCTION__ -> %s\n", __FUNCTION__);
        echo sprintf("__METHOD__   -> %s\n", __METHOD__);
    }
}
$aiezu = new Aiezu();
$aiezu->test();

echo "\n下面内容在Aiezu类外部输出:\n";
var_dump(get_class($aiezu));
print_r(get_class_methods($aiezu));
print_r(get_class_vars('Aiezu'));
输出:
下面内容在Aiezu类内部输出:
__CLASS__    -> Aiezu
__FUNCTION__ -> test
__METHOD__   -> Aiezu::test

下面内容在Aiezu类外部输出:
string(5) "Aiezu"
Array
(
    [0] => action
    [1] => test
)
Array
(
    [name] => 爱E族
    [ url] => http://aiezu.com
)

要回复问题请先登录注册