删除不赞成使用的行为
在 PHP V6 中删除了一些在早期的 PHP 版本中不赞成使用的行为。allow_call_time_pass_reference 配置指定在运行时通过引用传递参数时是否发出警告,它在 PHP V5 中就不推荐使用。在 PHP V6 中删除了 allow_call_time_pass_reference。
如果要指定哪个参数是通过引用传递的,更好的方法是使用声明函数。在 PHP V6 中,call-time-pass-by-reference 将抛出一个 E_STRICT 错误。在 PHP V6 中,“var” 已经成为 “public” 的别名,并且删除了 E_STRICT 警告。受 "new lt;object-name>" 的影响,也删除了 return-by-reference。通过引用赋值 “new” 将抛出一个 E_STRICT 错误。例如,下面的语句将抛出 E_STRICT 错误:
删除了 zend.ze1_compatibility_mode
zend.ze1_compatibility_mode 配置启用了与 Zend Engine V1 (PHP V4) 的兼容性,它是在 PHP V5 引入的,方便了从 PHP V4 迁移到 PHP V5。
在 PHP V6 中,已经删除了 zend.ze1_compatibility_mode 特性,如果检测到该设置,将抛出 E_CORE_ERROR。
删除了 Freetype 1 和 GD 1 库
FreeType 1 和 GD 1 是老版本的字体呈现和图像处理库。它们不再受到维护,并且已被更新版本的 FreeType 和 GD 代替。在 PHP V6 中,删除了对 FreeType 1 和 GD 1 库的支持。
默认情况下不启用 dl()
dl (string $library) 函数用于在运行时加载 PHP 扩展。在 PHP V5 中,可以在 php.ini 配置文件中启用或禁用 dl() 函数:enable_dl = On。
dl() 函数会给从未加载过的模块带来问题。dl() 函数不能在多线程服务器中正常工作,比如 IIS 或 Zeus,因为在这些服务器中会自动禁用它。不过 dl() 函数在 PHP Command Line Interface (CLI) Server Application Programming Interface (SAPI) 中非常有用。
在 PHP V6 中,dl() 函数在默认情况下是禁用的,但并没有删除它。SAPI 层可能会显式地注册 dl() 函数。
FastCGI 模式
FastCGI 提供很高的性能,如果禁用,将导致杂乱的代码。在 PHP V6 中不能禁用 FastCGI。
删除了 register_long_arrays
当启用 register_long_arrays 配置选项时,将注册很长的超级全局变量 — $HTTP_*_VARS 变量。$HTTP_*_VARS 变量是在 PHP V5 中为了向后兼容性而引入的,但不是必要的。使用更短的变量 $_GET、$_POST 和 $_SERVER 代替它会更好。在新的 PHP 版本中,register_long_arrays 设置和 $HTTP_*_VARS 没有得到好评。
在 PHP V6 中,删除了 register_long_arrays 设置和 $HTTP_*_VARS 全局变量,如果检测到 register_long_arrays,将抛出 E_CORE_ERROR。
删除 break $var
动态的 break 操作数不起作用,如以下示例所示:
在 PHP V6 中,删除了动态的 break 操作数。取而代之的是,您可以为 $var 分配一个数字,如下所示: