获取当前的类和方法?

时间:2010-01-26 15:16:19

标签: php

我正在创建一个日志功能,将我的错误记录在文件中。

我认为它将包含错误发生在哪个类和方法。

有没有办法记录发生错误的类和方法,所以我不必每次都手动输入?

7 个答案:

答案 0 :(得分:76)

我对PHP不大,但我相信它有类似于C / C ++的“魔术常量”。看看here:这似乎表明你可以使用

__LINE__, __FILE__, __FUNCTION__, __CLASS__, and __METHOD__

答案 1 :(得分:39)

如果你在父/基类中,__CLASS__将返回不需要的父/基类名。在那种情况下,您可以使用get_class()

get_class($this)

答案 2 :(得分:8)

在当前的PHP版本(5.5+)中,您应该使用static::class

它在static和instance方法中都有效,并返回实际的类名,即使方法体是在超类中定义的。

答案 3 :(得分:7)

在PHP5中使用__METHOD__常量

答案 4 :(得分:5)

get_called_class()得到当前的课程。这可能也很有趣:debug_print_backtrace()

答案 5 :(得分:2)

在Laravel 5中, CLASS 返回了命名空间和类名,因此它是一个大字符串。 所以这就是你如何在没有其他东西的情况下获得当前的课程

echo (new \ReflectionClass($this))->getShortName();

答案 6 :(得分:0)

PHP 8.0 起,如果变量是对象,则有了新的方法:

$object::class