__METHOD__ is a new magic constant after PHP5, which represents the name of the class grammar. Magic constant is a PHP predefined constant whose value can change. Other existing magic constants in PHP include __LINE__, __FILE__, __FUNCTION__, __CLASS__, etc.
The following is a small piece of code to demonstrate the usage of __METHOD__.
<?php class chhua{ function test(){ echo __METHOD__; } } $e=new chhua(); $e->test();//输出:chhua::test
Use
directly. For example,
wants to get the location of the script file
__FILE__;
Magic constants
__LINE__ The current line number in the file.
__FILE__ The full path and file name of the file. If used within an included file, returns the name of the included file. Since PHP 4.0.2, __FILE__ always contains an absolute path (or the resolved absolute path in the case of a symbolic link), whereas versions before that sometimes contained a relative path.
__DIR__ The directory where the file is located. If used within an included file, returns the directory where the included file is located. It is equivalent to dirname(__FILE__). Directory names do not include the trailing slash unless they are the root directory. (New in PHP 5.3.0) =
__FUNCTION__ function name (New in PHP 4.3.0). Since PHP 5 this constant returns the name of the function as it was defined (case sensitive). In PHP 4 this value is always lowercase.
__CLASS__ The name of the class (new in PHP 4.3.0). Since PHP 5 this constant returns the name of the class when it was defined (case sensitive). In PHP 4 this value is always lowercase. The class name includes the scope in which it is declared (e.g. Foo\Bar). Note that since PHP 5.4 __CLASS__ also works for traits. When used within a trait method, __CLASS__ is the name of the class that calls the trait method.
__TRAIT__ The name of the Trait (new in PHP 5.4.0). Since PHP 5.4 this constant returns the name of the trait as it was defined (case-sensitive). The trait name includes the scope in which it is declared (e.g. Foo\Bar).
__METHOD__ The method name of the class (newly added in PHP 5.0.0). Returns the name of the method as it was defined (case-sensitive).
__NAMESPACE__ The name of the current namespace (case sensitive). This constant is defined at compile time (new in PHP 5.3.0).
Magic methods
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup() , __toString(), __invoke(), __set_state() and __clone() and other methods are called "Magic methods" in PHP. You cannot use these method names when naming your own class methods unless you want to use their magic functionality.
Usually just these few