前言
随着大量的框架使用composer和namespace,渐渐的线上环境也从之前的5.3变成了5.4或者5.5甚至5.6,随着7月份PHP7的发布,会有更多的公司采用新版本。
之前好久就想写这样的一片文章,来说明下各个版本的差异,这次算是拿出时间了。
这次的是第一篇,目前规划写三篇
一方面是对自己的知识的整理,一方面是对自己的一次提升。
官方说明
官方文档地址 http://php.net/ChangeLog-5.php#5.4.0
详细说明
01 Mar 2012
原文
- autoconf 2.59+ is now supported (and required) for generating the configure script with ./buildconf. Autoconf 2.60+ is desirable otherwise the configure help order may be incorrect.
翻译
autoconf 2.59 +现在支持(需要)生成配置脚本/ buildconf。autoconf 2.60 +是理想的配置,否则有可能是不正确的。
autoconf
php编译安装的时候需要的依赖软件,所以新版本对应配套的软件也要换成最新的对性能来讲才保险啊~
Removed legacy features 移除的特性
原文
- break/continue $var syntax.
- Safe mode and all related ini options.
- register_globals and register_long_arrays ini options.
- import_request_variables().
- allow_call_time_pass_reference.
- define_syslog_variables ini option and its associated function.
- highlight.bg ini option.
- Session bug compatibility mode (session.bug_compat_42 and session.bug_compat_warn ini options).
- session_is_registered(), session_register() and session_unregister() functions.
- y2k_compliance ini option.
- magic_quotes_gpc, magic_quotes_runtime and magic_quotes_sybase ini options. get_magic_quotes_gpc, get_magic_quotes_runtime are kept but always return false, set_magic_quotes_runtime raises an E_CORE_ERROR.
- Removed support for putenv(“TZ=..”) for setting the timezone.
- Removed the timezone guessing algorithm in case the timezone isn’t set with date.timezone or date_default_timezone_set(). Instead of a guessed timezone, “UTC” is now used instead.
翻译
- break/continue$ var语法。
- 安全模式和所有相关的INI选项。
- register_globals和register_long_arrays INI选项。
- import_request_variables()。
- allow_call_time_pass_reference。
- define_syslog_variables INI选项及其相关的功能。
- highlight.bg INI选项。
- 会话错误兼容模式(session.bug_compat_42和session.bug_compat_warn INI选项)。
- session_is_registered(),session_register()和session_unregister()功能。
- y2k_compliance INI选项。
- magic_quotes_gpc,magic_quotes_runtime和magic_quotes_sybase INI选项。get_magic_quotes_gpc,get_magic_quotes_runtime保存但始终返回false,set_magic_quotes_runtime引发e_core_error。
- 不再支持putenv(“TZ = ..”)设置时区。
- 如果不设置时区与时区date.timezone或date_default_timezone_set()除去猜测算法。而不是猜测的时区,“UTC”现在是用来代替。
我是拿百度翻译来的我会乱说吗? =_=
break/continue
移除了break/continue $var语法
在5.4之前,我们可以通过传递后面的参数来控制跳出或者停止若干层的循环,然而在5.4.0的版本之后,就去除了这个特性。
<code><span>break</span><span>$c</span>; <span>continue</span><span>$c</span>;</code>Copier après la connexionbreak and continue accepts a number, that specify the number of nested loops, that should be breaked up, or continued.
参考资料
Safe mode and all related ini options. 去除安全模式以及在配置文件的选项
PHP 的安全模式是为了试图解决共享服务器(shared-server)安全问题而设立的。在结构上,试图在 PHP 层上解决这个问题是不合理的,但修改 web 服务器层和操作系统层显得非常不现实。因此许多人,特别是 ISP,目前使用安全模式。
语言的发展是在不断的进步的啊,也是一个不断试错改错的过程。^_^
参考资料
register_globals and register_long_arrays ini options.
这两个配置项因为性能关系被移除了。
参考资料
import_request_variables()
import_request_variables — 将 GET/POST/Cookie 变量导入到全局作用域中
bool import_request_variables ( string
types[,string 以上就介绍了PHP540版本ChangeLog详解(上),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。