阅读(2139) (10)

预定义变量和常量

2017-06-13 16:00:34 更新

为了能够加载系统以及配置系统运行需求,ModPHP 保留了下面这些变量和常量。你可以调用这些变量或常量,除非特别说明,否则不要尝试去更改或设置它们,而对于某一些变量,设置和更改它们则是没有意义的。

变量:

  1. $_SESSION['ME_ID']: 当前登录用户 ID
  2. $_GET['obj']:客户端请求调用的对象
  3. $_GET['act']:客户端请求调用的操作(方法)
  4. $SOCKET_INFO:Socket 服务器中保存会话信息的关联数组,包含三组内容,分别是 request_headers、session_id 和 user_id。
  5. $SOCKET_USER:Socket 服务器中保存已登录用户 ID 和对应客户端的关联数组,客户端资源保存在一个索引数组中。
  6. $STDIN: 交互式控制台中用户输入的内容
  7. $STDOUT: 交互式控制台中上一次的输出结果
  8. $ENCODING: 交互式控制台中命令行所使用的编码,仅 Winodws 系统,不建议修改。
  9. $TITLE: 交互式控制台的窗口标题,仅 Winodws 系统,可以修改。
  10. $PROMPT: 交互式控制台的行前提示符,默认 $,可以修改。
  11. $PARAM: 交互式控制台中(根据 shell 命令语法)解析用户输入得到的参数

常量(不区分大小写):

  1. MOD_VERSION:ModPHP 版本(仅大写)。
  2. TIME:PHP 运行时间。
  3. ROOT:系统根目录路径。
  4. SCRIPT:当前运行的文件,程序运行在根目录时,值为相对路径,否则为绝对路径。
  5. DISPLAY:正在展示的文件,程序运行在根目录时,值为相对路径,否则为绝对路径(该常量在 ModPHP 版本 1.6.4 之后已被移除,并由 display_file() 函数替代)。

$SOCKET_INFO 和 $SOCKET_USER:

这两个变量只有在 ModPHP 运行在默认的 Socket 服务器模式下时才会产生,它们不是超全局变量,使用时需要将它们引入当前作用域。

在 ModPHP 2.0.0 及之前,这两个变量分别有不同的名字:$WS_INFO 和 $WS_USER。ModPHP 2.0.1 引入了新的 SocketServer 扩展来替换原先得 WebSocket 扩展,因此,它们的名称也相应地变化了。

$SOCKET_INFO 中保存着和客户端有关的信息,客户端在进行 Socket 连接时,ModPHP 会将它们的连接信息保存下来,这些信息将被用来进行页面判断,登录和权限判断等。

$SOCKET_USER 以一个关联数组存储已登录用户的 ID 和客户端,因为一个用户可能在多个客户端或者浏览器窗口进行登录,因此,一个用户 ID 对应的客户端是多个的,它们以索引数组的方式保存。你可以使用这个变量快速获得指定用户的 Socket 客户端资源,如果他已经登录。