2024 年 PHP 日本大会

PHP 3 版本

目录

  1. 简介
  2. 配置指令
  3. 更改的行为
  4. 其他
  5. 迁移
  6. 调试器
  7. 内部机制

简介

PHP 3 文档已从 PHP 手册中移除,出于历史目的保留在此处。我们尝试保留所有文本,但很可能缺少一些内容。最后一个 PHP 3 版本 (3.0.18) 于 2000 年 10 月 20 日发布。

请访问 PHP 博物馆 下载,并阅读 历史记录 以了解更多关于 PHP 3 的信息。

配置指令

大多数指令以 php3_ 开头,而不是 php_。本文档未提及这些差异。

更改

FTP 配置选项已从 --with-ftp 更改为 --enable-ftp

E_ALL 的值为 63。

asp_tags 指令在 PHP 3.0.4 中添加。

E_* 常量在 php3.ini 中没有意义,但数值有效。

移除

--with-imsp[=DIR] 包含 IMSP 支持 (DIR 是 IMSP 的包含目录和 libimsp.a 目录)。

--with-mck[=DIR] 包含 Cybercash MCK 支持。DIR 是 Cybercash MCK 构建目录,默认为 /usr/src/mck-3.2.0.3-linux

--with-mod-dav=DIR 通过 Apache 的 mod_dav 包含 DAV 支持,DIR 是 mod_dav 的安装目录(仅限 Apache 模块版本)。

如果 sybase.compatability_mode 指令开启,这将导致 PHP 根据其 Sybase 类型自动为结果分配类型,而不是将它们全部视为字符串。

行为变更

返回值

unset() 返回 1。

在同一脚本中多次调用 setcookie() 将以相反的顺序执行。在尝试删除一个 cookie 之前插入另一个 cookie 时,将插入放在删除之前。

eval() 不返回值。

函数参数

gettype() 有一个“用户函数”返回值。

htmlspecialchars() 在 PHP 3.0.17 中添加了第二个参数。

error_log() 的第二个参数 message 将通过调试器。

empty() 将“0”视为非空,例如可能来自 HTML 表单的值。

其他

变量始终按值赋值,因为没有引用。

在 HTML 表单中使用数组仅限于一维数组。

在单引号字符串中转义字符时,将生成 E_NOTICE 级别的错误。

对象在其序列化和反序列化过程中会丢失其类关联。

必须在使用前定义函数。换句话说,从上到下。

不支持可变数量的参数。

return 只能在函数块内使用。

其他

PCRE 修饰符不可用。

is_uploaded_file() 自 PHP 3.0.16 起存在。

BC Math 默认启用,--disable-bcmath 禁用它。

register_globals 的行为始终开启,因为该指令不存在。

short_tags() 函数可用于启用短标签 (<?)。

CGI 版本有一个“make bench”工具用于对版本进行基准测试。运行可能需要超过 30 秒,因此请确保允许适当的时间限制。

SAPI 支持不可用。

HTTP PUT 方法允许保存文件,其处理方式类似于 POST 方法的文件保存。$PHP_PUT_FILENAME 保存创建的临时文件的位置,必须在请求期间移动该文件,否则它将被删除。

ODBC 默认启用,要禁用请使用 --disable-unified-odbc

GD 默认启用,要禁用请使用 --without-gd

在 Apache 中安装 PHP 3

   AddModule mod_php3.c
   LoadModule php3_module modules/libphp3.so
   AddType application/x-httpd-php3 .php3
  

SESAM 扩展特定于 PHP 3,已被移除。

迁移

有一些涉及 PHP 3 的特定迁移文档,但由于其大小和结构,它们未添加到此文档中。

调试器

与 PHP 3 标准附带的调试器相关的信息未添加到此文档中。

内部机制

与通常用于创建扩展的 PHP 3 内部工作相关的信息未添加到此文档中。

To Top