• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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() 会被调用

    __set(),当给不可访问的属性赋值时,__set() 会被调用

    __isset(),当对不可访问属性调用 isset() 或 empty() 是,__isset() 会被调用

    __unset(),当对不可访问属性调用 unset() 时,__unset() 会被调用

    __sleep(),serialize() 函数会检查类中是否存在魔术方法 __sleep(),如果存在,会先调用 __sleep(),然后才执行序列化操作。这样就允许对象在被序列化之前做任何清除操作。

    __wakeup(),当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。

    __toString(),当一个对象被当作字符串输出时,会调用 __toString() 输出的内容,例如 echo $obj;

    __invoke(),当以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用,本特性只在 PHP 5.3.0 及以上版本有效。

    __set_state(),当调用 var_export() 导出对象时,此方法会被调用

    __clone(),对象复制,当使用 clone 关键字复制对象时,会调用 __clone(),__clone() 不能被直接调用,使用 clone 复制的对象为浅复制,所以引用属性仍然会是一个指向原来的变量的引用。

    __debugInfo(),当调用 var_dump() 导出对象时,此方法会被调用

    __autoload($class_name),加载未定义的类 

    官方文档:

    https://www.php.net/manual/zh/reserved.variables.php

    https://www.php.net/manual/zh/language.constants.predefined.php

    https://www.php.net/manual/zh/language.oop5.magic.php

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP常量及变量区别原理详解
    • PHP 判断常量,变量和函数是否存在
    • PHP之变量、常量学习笔记
    • 实例分析php常量和变量的不同
    上一篇:PHP 使用 Trait 解决 PHP 单继承问题详解
    下一篇:PHP 实现 JSON 数据的编码和解码操作详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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