php预定义,php预定义变量和魔术方法比较

发布时间:2023-01-05

本文目录一览:

  1. php预定义变量有哪些
  2. PHP如何添加预定义常量或变量
  3. php的预定义常量的值可不可以修改值?

php预定义变量有哪些

超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量

  • $GLOBALS — 引用全局作用域中可用的全部变量
  • $_SERVER — 服务器和执行环境信息
  • $_GET — HTTP GET 变量
  • $_POST — HTTP POST 变量
  • $_FILES — HTTP 文件上传变量
  • $_REQUEST — HTTP Request 变量
  • $_SESSION — Session 变量
  • $_ENV — 环境变量
  • $_COOKIE — HTTP Cookies
  • $php_errormsg — 前一个错误信息
  • $HTTP_RAW_POST_DATA — 原生POST数据
  • $http_response_header — HTTP 响应头
  • $argc — 传递给脚本的参数数目
  • $argv — 传递给脚本的参数数组

PHP如何添加预定义常量或变量

常量使用define语句定义即可 全局变量可以定义到全局变量数组$GLOBALS中 参考手册 : ... 看题主的问法,感觉"环境变量"可能符合题主要求 nginx配置PHP server的时候可以增加以下指令

fastcgi_param CUSTOM_ENV_VAR "my_env_value";

之后只要是通过nginx访问的PHP请求,在任何代码中使用 $_SERVER['CUSTOM_ENV_VAR'] 就能取到你需要的值 又或者在fastcgi的配置文件中增加一行:

env[CUSTOM_ENV_VAR]="my_env_value"

之后只要是php-fastcgi处理的PHP文件,都可以通过 getenv('CUSTOM_ENV_VAR'); 来获取设置的值 如果题主确实打算不亲自define而要得到类似E_ALL那样的常量的话,就需要写点C了 题主可以新建一个自己的扩展(或者直接随便找个你会编译的扩展也行),在PHP_MINIT_FUNCTION中使用以下宏来定义自己的常量

REGISTER_STRINGL_CONSTANT("MY_SITE_VERSION", "1.0", 3, CONST_PERSISTENT);

之后重新编译PHP即可.

php的预定义常量的值可不可以修改值?

预定义常量是系统本身定义的常量,在编译之后生成的 根据常量的定义 一个常量一旦被定义,就不能再改变或者取消定义 如果你想改变这些值,那么可以在编译之前改变,一旦编译之后,就不能再被改变