* * Magic Constants and Magic methods
PHP retains all class methods that begin with __ (two underscores) as a magic method; Therefore, in addition to the above magic method when defining a class method, it is recommended that you do not prefix __. You cannot use these method names when naming your own class methods, unless you want to use their magic features.
1. Magic constant
The current line number in the __line__ file.
The full path and file name of the __file__ file. If used in the included file, returns the file name that is included.
From PHP 4.0.2, __file__ always contains an absolute path (if it is a symbolic connection, the resolved absolute path).
The previous version sometimes contains a relative path.
The directory where the __dir__ file resides. If used in the included file, returns the directory where the included files are located.
It is equivalent to DirName (__file__). Unless it is a root directory, the name in the directory does not include the trailing slash.
__function__ function name (PHP 4.3.0 new addition). From PHP 5 This constant returns the name (case-sensitive) when the function is defined.
In PHP 4, this value is always in lowercase letters.
The name of the __class__ class (PHP 4.3.0 new addition). From PHP 5 This constant returns the name of the class when it is defined (case-sensitive).
In PHP 4, this value is always in lowercase letters. The class name includes its declared action area (for example, Foo\bar).
Note since PHP 5.4, __CLASS__ has also worked for trait.
When used in the trait method, __class__ is the name of the class that invokes the trait method.
__trait__ TRAIT's name (PHP 5.4.0 new addition). From PHP 5.4 This constant returns the name of the trait when it is defined (case-sensitive).
The Trait name includes its declared function area (for example, Foo\bar).
The method name of the __method__ class (PHP 5.0.0 new addition). Returns the name of the method when it is defined (case-sensitive).
__NAMESPACE__ the name of the current namespace (case sensitive). This constant is defined at compile time (PHP 5.3.0 is new).
The Magic method __call has two necessary parameters. The first parameter is the non-existent method name of the request, and the format is a string. The second parameter is the parameter that is given when the method is requested to be absent. The format is an array.
Function: Multiple functionally similar member methods can be written into the Magic method __call.
__autoload (): function is loaded automatically. When instantiating a class object, it is automatically triggered.
2. Method of Magic (15)
__construct (), __destruct (), __call (), __callstatic (), __get (), __set (), __isset (), __unset (), __sleep (), __wakeup (), __ ToString (), __invoke (), __set_state (), __clone () and __debuginfo ()
__construct () is called when an object is instantiated, and __construct is called when __construct and a function with the class name function name are present, and the other is not called.
__destruct () Called when an object is deleted or when an object operation terminates. The
__call () object invokes a method that is called directly if the method exists, or calls the __call function if it does not exist.
__get () when reading the value of a property that is not directly accessible, __get () is called.
__set () __tostring () is called when an object is printed. such as Echo $obj; or print $obj;
__clone () is called when cloning an object. such as: $t =new Test (); $t 1=clone $t; Called before
__sleep () serialize. If the object is relatively large, want to cut a bit of the east and then serialize, you can consider this function.
__wakeup () unserialize are called to do some initialization of the object.
__isset () __isset () is called when isset () or empty () is called on an inaccessible property.
__unset () is called when unset () is called on a non-accessible property, __unset () is called
__set_state () when the var_export is called. Use the return value of __set_state as the return value of Var_export.
__autoload () When an object is instantiated, the method is called if the corresponding class does not exist.
Example:
The Magic constants and magic methods of PHP