The Magic constants and magic methods of PHP

Source: Internet
Author: User

* * 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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.