See a Magic variable today, is not seen before, __dir__, I checked, found that the original is php5.3 new, by the way a few examples, explain the PHP magic variable
1:__file__
The full path and file name of the 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), and the previous version sometimes contains a relative path.
This variable, I use the most, the estimate is also the most used by the people.
The Web server will specify a documentroot, but different servers, the settings of the DocumentRoot may be different, in this case, to move a Web site from one server to another server, it is possible because the path is different, resulting in the site can not run up.
"; echo __file__; echo "
"; echo dirname (__file__); echo "
"; Echo dirname (DirName (__file__)); ? >
Output:
C:\Web\Apache\htdocs\Magic\06\
C:\Web\Apache\htdocs\Magic\06\test.php
C:\Web\Apache\htdocs\Magic\06
C:\Web\Apache\htdocs\Magic
2:__line__
The current line number in the file. This variable in debugging error, still more useful, other time, useless, purely personal point of view.
Output:
2
3:__class__
The name of the PHP5 class, and the results returned are case-sensitive
"; } function Say_b () { echo "' B '-said the". Get_class ($this). "
"; }} Class Derived_class extends base_class{ function say_a () { parent::say_a (); echo "' A '-said the". __class__. "
"; } function Say_b () { parent::say_b (); echo "' B '-said the". Get_class ($this). "
"; }} $obj _b = new Derived_class (); $obj _b->say_a (); echo "
"; $obj _b->say_b ();? >
The result is:
' A '-said the Base_class
' A '-said the Derived_class
' B '-said the Derived_class
' B '-said the Derived_class
Sometimes we can use Get_class instead of __class__.
4:__function__ and __method__
__function__: Function name, results returned in PHP5 are case-sensitive
__METHOD__: The function name in the method, the result returned in PHP5 is case-sensitive
Two is the name of the method of acquisition, what is the difference?
"; echo __method__;} } function Good () { echo __function__; echo "
"; echo __method__;} $test = new test (); $test->a (); echo "
return Result:
A
Test::a
Good
Good
Compared to the isolated function, two can take out the function name, no difference, if it is a method in class, __function__ can only take out the class method name, and __method__ not only can take out the method name, but also can remove the class name
5:__dir__
The directory where the 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. (New in PHP 5.3.0)
If you want to use __dir__ in a previous version of 5.3, you can
6:__namespace__
The name of the current namespace (case sensitive). This constant is defined at compile time (PHP 5.3.0 new)
7:__static__
When you call the class's static method, the class name is returned, which is case-sensitive. If called in inheritance, the inherited class name can be returned regardless of whether there is a definition in the inheritance.
Ext.: http://blog.51yip.com/php/1165.html