插件窝 干货文章 PHP中魔术变量有哪些

PHP中魔术变量有哪些

变量 当前 例如 全局 184    来源:    2025-03-18

在PHP中,魔术变量(Magic Variables)通常指的是那些由PHP自动定义和管理的特殊变量。这些变量在不同的上下文中具有不同的值,并且它们的值是由PHP运行时环境自动设置的。以下是一些常见的魔术变量:

  1. __LINE__:

    • 表示当前代码行号。
    • 例如:echo __LINE__; 会输出当前行号。
  2. __FILE__:

    • 表示当前文件的完整路径和文件名。
    • 例如:echo __FILE__; 会输出当前文件的路径。
  3. __DIR__:

    • 表示当前文件所在的目录。
    • 例如:echo __DIR__; 会输出当前文件所在的目录路径。
  4. __FUNCTION__:

    • 表示当前函数的名称。
    • 例如:在函数内部使用 echo __FUNCTION__; 会输出当前函数的名称。
  5. __CLASS__:

    • 表示当前类的名称。
    • 例如:在类的方法内部使用 echo __CLASS__; 会输出当前类的名称。
  6. __TRAIT__:

    • 表示当前Trait的名称。
    • 例如:在Trait内部使用 echo __TRAIT__; 会输出当前Trait的名称。
  7. __METHOD__:

    • 表示当前方法的名称(包括类名)。
    • 例如:在类的方法内部使用 echo __METHOD__; 会输出当前方法的名称,包括类名。
  8. __NAMESPACE__:

    • 表示当前命名空间的名称。
    • 例如:在命名空间内部使用 echo __NAMESPACE__; 会输出当前命名空间的名称。
  9. $this:

    • 在类的上下文中,$this 是一个特殊的变量,它指向当前对象实例。
    • 例如:在类的方法内部使用 $this->property 可以访问当前对象的属性。
  10. $_SERVER:

    • 这是一个超全局变量,包含了服务器和执行环境的信息。
    • 例如:$_SERVER['PHP_SELF'] 返回当前脚本的文件名。
  11. $_GET:

    • 这是一个超全局变量,用于收集通过GET方法提交的表单数据。
    • 例如:$_GET['name'] 可以获取URL中的 name 参数。
  12. $_POST:

    • 这是一个超全局变量,用于收集通过POST方法提交的表单数据。
    • 例如:$_POST['name'] 可以获取表单中 name 字段的值。
  13. $_REQUEST:

    • 这是一个超全局变量,包含了 $_GET$_POST$_COOKIE 的内容。
    • 例如:$_REQUEST['name'] 可以获取通过GET、POST或COOKIE提交的 name 参数。
  14. $_SESSION:

    • 这是一个超全局变量,用于存储会话数据。
    • 例如:$_SESSION['username'] 可以存储和获取当前会话的用户名。
  15. $_COOKIE:

    • 这是一个超全局变量,用于获取通过HTTP Cookie发送的数据。
    • 例如:$_COOKIE['user'] 可以获取名为 user 的Cookie值。
  16. $_FILES:

    • 这是一个超全局变量,用于获取通过HTTP POST方法上传的文件信息。
    • 例如:$_FILES['file']['name'] 可以获取上传文件的原始名称。
  17. $_ENV:

    • 这是一个超全局变量,用于获取环境变量的值。
    • 例如:$_ENV['PATH'] 可以获取系统的PATH环境变量。
  18. $GLOBALS:

    • 这是一个超全局变量,包含了所有全局变量的引用。
    • 例如:$GLOBALS['variable'] 可以访问全局变量 $variable

这些魔术变量和超全局变量在PHP开发中非常有用,可以帮助开发者获取当前脚本的上下文信息、处理表单数据、管理会话等。