知识专栏
多方位、多角度、深度解读您所关心的问题

PHP 5.3.0于2009年6月30日正式发布。

【变更日志】

将捆绑的 PCRE 升级到 7.9 版。(努诺)

将捆绑的 sqlite 升级到版本 3.6.15。(斯科特)

将扩展移动到 PECL(Derick、Lukas、Pierre、Scott):

分机/数据库

分机/fbsql

分机/fdf

分机/ncurses

ext/mhash(BC 层现在完全在 ext/hash 中)

分机/明

分机/msql

ext/sybase(不再维护,必须使用 sybase_ct)

从 mysqli 中删除了实验性的 RPL(主/从)功能。(安德烈)

删除了 zend.ze1_compatibility_mode。(德米特里)

删除了所有 zend_extension_* php.ini 指令。Zend 扩展现在总是使用 zend_extension 指令加载。(德里克)

删除了 open_basedir 会话中对“/tmp”的特殊处理。注意:此未记录的行为是在 5.2.2 中引入的。(阿列克谢)

从 CGI sapi 中删除了 shebang 线检查(由扫描仪检查)。(德米特里)

将 PCRE、反射和 SPL 扩展更改为始终启用。(马库斯)

更改 md5() 以使用改进的实现。(太阳能设计师,德米特里)

更改了 HTTP 流包装器以接受 200 到 399 之间的任何代码(包括 200 到 399)为成功。(迈克,诺亚方特斯)

将 __call() 更改为在私有/受保护方法访问时调用,类似于属性和 __get()。(安德烈)

将 dl() 更改为默认禁用。仅在 SAPI 显式注册时启用。目前启用了 cli、cgi 和嵌入 SAPI。(德米特里)

更改 opendir()、dir() 和 scandir() 以在未传递上下文参数时使用默认上下文。(萨拉)

更改了 open_basedir 以允许在运行时上下文中收紧。(萨拉)

更改了 PHP/Zend 扩展以使用灵活的构建 ID。(斯塔斯)

在 Soap 扩展方法参数验证中将错误级别 E_ERROR 更改为 E_WARNING。(费利佩)

更改了 openssl 信息以显示共享库版本号。(斯科特)

将浮点行为更改为在所有平台和所有编译器上始终使用双精度。(克里斯蒂安·塞勒)

当舍入到一定精度并正确舍入非常大和非常小的指数时,将 round() 更改为更直观的行为。(克里斯蒂安·塞勒)

更改 session_start() 以在会话启动失败时返回 false。(贾尼)

更改 property_exists() 以检查与可访问性无关的属性是否存在(如 method_exists())。(费利佩)

更改 array_reduce() 以允许混合 $initial (Christian Seiler)

改进的 PHP 语法和语义:

添加了 lambda 函数和闭包。(克里斯蒂安·塞勒,德米特里)

添加了“跳转标签”运算符(有限的“goto”)。(德米特里,萨拉)

添加了 NOWDOC 语法。(格温妮·拉斯金德、斯塔斯、德米特里)

添加了带双引号的 HEREDOC 语法。(拉尔斯·斯特罗尼,费利佩)

添加了对使用静态 HEREDOC 初始化静态变量和类成员或常量的支持。(马特)

改进了双引号字符串中变量的语法突出显示和一致性以及 HEREDOC 和反引号中的文字文本。(马特)

添加了“?:”运算符。(马库斯)

添加了对命名空间的支持。(德米特里、斯塔斯、格雷戈里、马库斯)

添加了对后期静态绑定的支持。(德米特里,艾蒂安·克诺伊斯)

添加了对 __callStatic() 魔术方法的支持。(萨拉)

添加 forward_static_call(_array) 以完成 LSB。(迈克·莱弗利)

添加了对使用 $foo::myFunc() 动态访问静态成员的支持。(艾蒂安·克诺斯)

改进了回调检查。(马库斯)

添加了 __DIR__ 常量。(拉尔斯·斯特罗尼)

添加了新的错误模式 E_USER_DEPRECATED 和 E_DEPRECATED。E_DEPRECATED 用于通知计划在未来 PHP 版本中删除的内容。(拉斯·斯特罗尼、费利佩、马库斯)

添加了“request_order”INI 变量来专门控制 $_REQUEST 行为。(斯塔斯)

添加了对异常链接的支持。(马库斯)

增加了在析构函数中处理异常的能力。(马库斯)

改进了 PHP 运行时速度和内存使用:

在编译时用它们的值替换全局范围的持久常量。(马特)

优化 ZEND_SIGNED_MULTIPLY_LONG()。(马特)

删除了直接执行器递归。(德米特里)

在 x86 的执行程序中使用 fastcall 调用约定。(德米特里)

使用 IS_CV 直接访问 $this 变量。(德米特里)

使用 ZEND_FREE() 操作码代替 ZEND_SWITCH_FREE(IS_TMP_VAR)。(德米特里)

惰性 EG(active_symbol_table) 初始化。(德米特里)

优化 ZEND_RETURN 操作码,不使用时不分配和复制返回值。(德米特里)

将所有基于 flex 的扫描仪替换为基于 re2c 的扫描仪。(马库斯、努诺、斯科特)

添加了垃圾收集器。(大卫王,德米特里)。

通过 GCC4 可见性控制改进了 PHP 二进制文件大小和启动速度。(努诺)

改进了引擎堆栈实现,以获得更好的性能和稳定性。(德米特里)

通过将常量移动到只读内存来提高内存使用率。(德米特里,皮埃尔)

更改了异常处理。现在每个 op_array 最后都不包含 ZEND_HANDLE_EXCEPTION 操作码。(德米特里)

通过在第二次使用时消除 fopen(3) 优化了 require_once() 和 include_once()。(德米特里)

将 ZEND_FETCH_CLASS + ZEND_ADD_INTERFACE 优化为单个 ZEND_ADD_INTERFACE 操作码。(德米特里)

优化字符串搜索单个字符。(米哈尔·齐米安科,斯科特)

优化插值字符串以使用更少的操作码。(马特)

改进的 php.ini 处理:(Jani)

添加了对 CGI/FastCGI 的“.htaccess”样式用户定义的 php.ini 文件支持。

添加了对特殊 [PATH=/opt/httpd/www.example.com/] 和 [HOST=www.example.com] 部分的支持。在这些部分中设置的指令不能被用户定义的 ini 文件或在运行时覆盖。

为 php.ini 语法错误添加了更好的错误报告。

允许使用“扩展”指令使用完整路径加载模块。

允许“ini 变量”几乎在所有 ini php.ini 文件中使用。

允许在“数组”ini 选项中使用字母数字/变量索引。

向 parse_ini_file() 添加了第三个可选参数以指定 INI_SCANNER_NORMAL 或 INI_SCANNER_RAW 的扫描模式。在原始模式中,选项值和部分值按原样处理。

修复了 get_cfg_var() 以能够返回“数组”ini 选项。

向 ini_get_all() 添加了可选参数以仅检索当前值。(汉内斯)

改进的 Windows 支持:

将所有库更新到最新的稳定版本。(皮埃尔、罗布、利兹、加勒特)。

添加了对 stat()、touch()、filemtime()、filesize() 和相关函数的 Windows 支持。(皮埃尔)

在套接字扩展中为 Windows 重新添加了 socket_create_pair()。(卡勒)

还为 Windows 平台添加了 inet_pton() 和 inet_ntop()。(卡勒,皮埃尔)

为 Windows 平台添加了 mcrypt_create_iv()。(皮埃尔)

在 Windows 上添加了 ACL 缓存支持。(坎瓦吉特·辛格拉、皮埃尔、文卡特·拉曼·唐)

添加了基于 Windows 的 GetVersionEx 信息的常量。PHP_WINDOWS_VERSION_* 和 PHP_WINDOWS_NT_*。(皮埃尔)

在 Windows 上添加了对 ACL(is_writable、is_readable、现在报告正确结果)的支持。(皮埃尔、文卡特·拉曼·唐、坎瓦吉特·辛格拉)

在 Windows 上添加了对 fnmatch() 的支持。(皮埃尔)

在 Windows 上添加了对 time_nanosleep() 和 time_sleep_until() 的支持。(皮埃尔)

在 Windows 上添加了对 symlink()、readlink()、linkinfo() 和 link() 的支持。它们仅在运行平台支持它们时可用。(皮埃尔)

GMP 扩展现在依赖于 MPIR 而不是 GMP 库。(皮埃尔)

添加了对 stream_socket_pair() 的 Windows 支持。(卡勒)

删除核心功能的所有外部依赖项。(皮埃尔)

大幅改进构建过程(Pierre、Kalle、Rob):

VC9 (Visual C++ 2008) 或更高版本支持

初始实验性 x64 支持

MSI 安装程序现在支持所有最新的 Windows 版本,包括 Windows 7。(John,Kanwaljeet Singla)

改进和清理的 CGI 代码:

FastCGI 现在始终启用并且无法禁用。有关更多详细信息,请参阅 sapi/cgi/CHANGES。(德米特里)

添加了 CGI SAPI -T 选项,可用于测量重复多次脚本的执行时间。(德米特里)

改进的流:

修复了在未记录错误时失败时令人困惑的错误消息。(格雷格)

添加了 stream_supports_lock() 函数。(本杰明·舒尔茨)

为 copy() 函数添加了上下文参数。(萨拉)

添加了“glob://”流包装器。(马库斯)

添加了“params”作为 stream_context_create() 的可选参数。(萨拉)

添加了在 include_path 中使用流包装器的功能。(格雷戈里,德米特里)

改进的 DNS API

添加了对 dns_check_record()、dns_get_mx()、checkdnsrr() 和 getmxrr() 的 Windows 支持。(皮埃尔)

添加了对旧式 DNS 功能的支持(支持 OSX 和 FBSD)。(斯科特)

在包含 TXT 元素的 dns_check_record() 中添加了一个新的“条目”数组。(费利佩,皮埃尔)

改进的哈希扩展:

将 mhash 更改为围绕哈希扩展的包装层。(斯科特)

添加了 hash_copy() 函数。(托尼)

向哈希扩展添加了 sha224 哈希算法。(斯科特)

改进的 IMAP 支持 (Pierre):

添加 imap_gc() 以清除 imap 缓存

添加了 imap_utf8_to_mutf7() 和 imap_mutf7_to_utf8()

改进的 mbstring 扩展:

添加了“mbstring.http_output_conv_mimetypes”INI 指令,允许通过 mb_output_handler() 转换常见的非文本类型,例如“application/xhtml+xml”。(森吉)

改进的 OCI8 扩展(Chris Jones/Oracle Corp.):

添加了数据库驻留连接池 (DRCP) 和快速应用程序通知 (FAN) 支持。

添加了对 Oracle 外部身份验证的支持(在 Windows 上不支持)。

改进重启数据库的持久连接处理。

为 oci_bind_by_name 添加了 SQLT_AFC(又名 CHAR 数据类型)支持。

修复了错误#45458(关联数组的数字键未正确处理)

修复了错误#41069(通过 DB 链接查询的分段错误)。

修复了 Oracle 10g ORACLE_HOME 版本中 SQLT_BDOUBLE 和 SQLT_BFLOAT 常量的定义。

将 oci8.default_prefetch 的默认值从 10 更改为 100。

修复了 PECL 错误#16035(OCI8:没有定义 ORACLE_HOME 的 oci_connect 会导致段错误)(Chris Jones/Oracle Corp.)

修复了 PECL 错误#15988(OCI8:sqlnet.ora 不能用旧的 Oracle 库读取)(Chris Jones/Oracle Corp.)

修复了 PECL 错误#14268(允许“pecl install oci8”命令“自动检测”即时客户端 RPM 安装)(Chris Jones/Oracle Corp.)

修复了 PECL 错误#12431(OCI8 ping 功能已损坏)。

允许从 PHP 4.3.9 开始构建(例如从 PECL)基于 PHP 5.3 的 OCI8 代码。

在 Windows 上为 Oracle 11g 和 10g 提供单独的扩展。(皮埃尔,克里斯)

......

猜您还想看: php
赞一下
--
踩一脚
--

您已成功复制微信号

leishi010

打开微信添加好友?

确定