PHP 5.4.0 更新日志
发布日期:2012 年 3 月 1 日。
- 构建系统要求 autoconf 2.59+,推荐 autoconf 2.60+。
- 移除多项旧特性,包括 safe_mode、register_globals、register_long_arrays、import_request_variables()、allow_call_time_pass_reference、magic_quotes、session_register()/session_unregister()/session_is_registered()、y2k_compliance、putenv("TZ=...") 设置时区以及旧的时区猜测算法等。
- 将 ext/sqlite 迁移到 PECL,SQLite3 和 PDO SQLite 不受影响。
- 新增短数组语法、二进制数字格式、Class::{expr}()、默认多字节支持、Traits、闭包 $this 支持、数组解引用、callable 类型提示、数组形式间接方法调用、DTrace 支持、实例化后成员访问、= 始终可用、Zend Signal Handling、闭包 rebinding 等能力。
- 调整默认字符集为 UTF-8,E_ALL 包含 E_STRICT,数组到字符串静默转换改为产生 notice,向 null/空字符串/false 添加属性改为 warning。
- 优化 Zend Engine 内存使用和性能,包括 interned strings、运行时绑定缓存、$GLOBALS JIT autoglobal、@ 运算符性能、静态属性访问优化、include/require 与执行器路径优化等。
- 核心函数新增 debug_backtrace()/debug_print_backtrace() 限制栈帧参数、hex2bin()、自然排序选项、stream_metadata()、用户 stream_truncate()、array_combine 空数组返回空数组等改进,并修复 crypt_blowfish、htmlspecialchars/entities、unserialize、header、proc_open、tempnam、iconv 等问题。
- Generic SAPI 新增 $_SERVER["REQUEST_TIME_FLOAT"]、max_input_vars、header_register_callback()、http_response_code(),并修复上传文件索引安全问题。
- CLI SAPI 新增内置 Web 服务器、交互式 shell pager/prompt 设置、--rz 选项和多项内置服务器修复。
- PHP-FPM 移除 EXPERIMENTAL 标记,增加 partial syslog、process.max、扩展访问限制、错误日志增强等能力。
- JSON 新增 JSON_UNESCAPED_UNICODE、JsonSerializable、JSON_BIGINT_AS_STRING、JSON_NUMERIC_CHECK、JSON_UNESCAPED_SLASHES、JSON_PRETTY_PRINT 等能力。
- 改进 intl、mbstring、MySQL/mysqlnd/MySQLi/PDO_mysql、OpenSSL、PDO、Reflection、Session、SNMP、SOAP、SPL、XSL、Zlib 等多个扩展,并修复大量兼容性、安全和稳定性问题。
