您的位置:

php基础之预定义变量,php定义静态变量

本文目录一览:

在PHP中,预定义的常量和变量,是怎么使用和输出的?

几个 PHP 的“魔术常量”

__LINE__ :文件中的当前行号。

__FILE__ :文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。

__FUNCTION__ :函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

__CLASS__ :类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

__METHOD__ : 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

PHP的预定义变量和常量都有什么?

PHP 在常量中定义了以下一些常量。

__FILE__

这个默认常量是 PHP 程序文件名。若引用文件 (include 或 require)则在引用文件内的该常量为引用文件名,而不是引用它的文件名。

__LINE__

这个默认常量是 PHP 程序行数。若引用文件 (include 或 require)则在引用文件内的该常量为引用文件的行,而不是引用它的文件行。

PHP_VERSION

这个内建常量是 PHP 程序的版本,如 '3.0.8-dev'。

PHP_OS

这个内建常量指执行 PHP 解析器的操作系统名称,如 'Linux'。

TRUE

这个常量就是真值 (true)。

FALSE

这个常量就是伪值 (false)。

E_ERROR

这个常量指到最近的错误处。

E_WARNING

这个常量指到最近的警告处。

E_PARSE

本常式为解析语法有潜在问题处。

E_NOTICE

这个常式为发生不寻常但不一定是错误处。例如存取一个不存在的变量。

这些 E_ 开头形式的常量,可以参考 error_reporting() 函数,有更多的相关说明。

当然在程序写作时,以上的默认常量是不够用。define() 的功能可以让我们自行定义所需要的常量。见下例

?php

define("COPYRIGHT", "Copyright © 2000, netleader.126.com");

echo COPYRIGHT;

?

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全局变量和php预定义变量

仅供参考,更多,可以查看

预定义变量

PHP 提供了大量的预定义变量。由于许多变量依赖于运行的服务器的版本和设置,及其它因素,所以并没有详细的说明文档。一些预定义变量在 PHP 以命令行形式运行时并不生效。有关这些变量的详细列表,请参阅预定义变量一章。

Warning

PHP 4.2.0 以及后续版本中,PHP 指令 register_globals 的默认值为 off。这是 PHP 的一个主要变化。让 register_globals 的值为 off 将影响到预定义变量集在全局范围内的有效性。例如,为了得到 DOCUMENT_ROOT 的值,将必须使用 $_SERVER['DOCUMENT_ROOT'] 代替 $DOCUMENT_ROOT,又如,使用 $_GET['id'] 来代替 $id 从 URL 中获取 id 值,亦或使用 $_ENV['HOME'] 来代替 $HOME 获取环境变量 HOME 的值。

更多相关信息,请阅读 register_globals 的配置项条目,安全一章中的使用 Register Globals,以及 PHP » 4.1.0 和 » 4.2.0 的发行通告。

如果有可用的 PHP 预定义变量那最好用,如超全局变量。

从 PHP 4.1.0 开始,PHP 提供了一套附加的预定数组,这些数组变量包含了来自 web 服务器(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效,例如,在任何范围内自动生效。因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)。(PHP 中没有用户自定义超全局变量的机制。)超全局变量罗列于下文中;但是为了得到它们的内容和关于 PHP 预定义变量的进一步的讨论以及它们的本质,请参阅预定义变量。而且,你也将注意到旧的预定义数组($HTTP_*_VARS)仍旧存在。自 PHP 5.0.0 起,长格式的 PHP 预定义变量可以通过设置 register_long_arrays 来屏蔽。

Note: 可变变量 超级全局变量不能被用作可变变量。

Note: 尽管超全局变量和 HTTP_*_VARS 同时存在。但是他们并不是同一个变量,所以改变一个的值并不会对另一个产生影响。

如果某些 variables_order 中的变量没有设定,它们的对应的 PHP 预定义数组也是空的。

PHP 超全局变量

$GLOBALS

包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。从 PHP 3 开始存在 $GLOBALS 数组。

$_SERVER

变量由 web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。

$_GET

经由 URL 请求提交至脚本的变量。类似于旧数组 $HTTP_GET_VARS 数组(依然有效,但反对使用)。

$_POST

经由 HTTP POST 方法提交至脚本的变量。类似于旧数组 $HTTP_POST_VARS 数组(依然有效,但反对使用)。

$_COOKIE

经由 HTTP Cookies 方法提交至脚本的变量。类似于旧数组 $HTTP_COOKIE_VARS 数组(依然有效,但反对使用)。

$_FILES

经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)。详细信息请参阅 POST 方法上传。

$_ENV

执行环境提交至脚本的变量。类似于旧数组 $HTTP_ENV_VARS 数组(依然有效,但反对使用)。

$_REQUEST

经由 GET,POST 和 COOKIE 机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。此数组在 PHP 4.1.0 之前没有直接对应的版本。参见 import_request_variables()。

Caution

自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在于 $_REQUEST 中。

Note: 当运行于命令行模式时,此数组将不会包含 argv 和 argc 条目;它们已经存在于数组 $_SERVER 中。

$_SESSION

当前注册给脚本会话的变量。类似于旧数组 $HTTP_SESSION_VARS 数组(依然有效,但反对使用)。

什么是php 预定义变量

定义一个变量并初始化:$name = '';

可以初始化任意类型的数据。

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即可.