PHP 预定义变量、魔术常量和魔术方法功能与用法

本文总结了PHP 预定义变量、魔术常量和魔术方法。分享给大家供大家参考,具体如下:

PHP 预定义了一些变量、常量、方法,使用起来很方便,例如直接使用 __DIR__ 获取当前文件所在的目录。

下面分别详细介绍一下 PHP 的预定义变量、魔术常量和魔术方法

预定义变量

超全局变量:

超全局变量是在全部作用域中始终可用的内置变量,意味这你可以在 PHP 脚本的任意位置直接访问。在函数或方法中无需执行 global $variable; 就可以访问它们。

超全局变量是从 PHP 4.1.0 开始才有的功能。

PHP 的超级全局变量有:

$GLOBALS,引用全局作用域中可用的全部变量

$_SERVER,服务器和执行环境信息

$_GET,HTTP GET 变量

$_POST,HTTP POST 变量

$_FILES,HTTP 文件上传变量

$_COOKIE,HTTP Cookies

$_SESSION,Session 变量

$_REQUEST,HTTP Request 变量

$_ENV,环境变量

其他:

$php_errormsg,前一个错误信息

$HTTP_RAW_POST_DATA,原生 POST 数据,一般会使用 php://input 代替 $HTTP_RAW_POST_DATA

$http_response_header,HTTP 响应头

$argc,传递给脚本的参数数目

$argv,传递给脚本的参数数组

魔术常量

PHP 有八个魔术常量,它们的值随着它们在代码中的位置改变而改变。例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量(魔术常量)不区分大小写,如下:

__LINE__,文件中的当前行号

__FILE__,文件的完整路径和文件名,如果用在被包含的文件中,则返回被包含的文件名

__DIR__,文件所在的目录,如果用在被包括文件中,则返回被包括的文件所在的目录。等价与 dirname(__FILE__)

__FUNCTION__,函数的名称

__CLASS__,类的名称

__TRAIT__,trait 的名字

__METHOD__,类的方法名

__NAMESPACE__,当前命名空间的名称

魔术方法

Magic methods PHP 的魔术方法,在命名自定义的类方法时不能使用这些方法名,因为 PHP 已经规定好了这些方法是有特定的功能,例如 __construct() 是构造方法。

PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了魔术方法,建议不要以 __ 为前缀。

__construct(),构造函数

__destruct(),析构函数

__call(),在对象中调用一个不可访问的方法时,__call() 会被调用

__callStatic(),在对象中调用一个不可访问的静态方法时,__call() 会被调用

__get(),当读取不可访问的属性值时,__set() 会被调用

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1775.html