PHP5.4.X废弃的函数
1. Backward Incompatible Changes :一些内容将不兼容
1)不再支持安全模式,
2) 移除魔术引用,
3) 移除全局变量php.ini设置,
4) 移除Call-time pass by reference(如call_user_func_array('function', array(&$a) 不支持)
5)break/continue 不接受参数,但保留接受静态参数
6)必须设置时区timezone
7) 注意非数字数组键值 详看:PHP5.4中一个需要注意的变化(Chained string offsets)
8) 数组转字符串提示 E_NOTICE level error
8) 使用超全局变量做函数参数将导致致命错误
function foo($_GET, $_POST) {}
//在5.3是没问题的.
//php5.4出现:Fatal error: Cannot re-assign auto-global variable _GET in /opt/php-5.4.0/test.php on line 4
以下函数已经从PHP中移除:
define_syslog_variables()
import_request_variables()
session_is_registered(), session_register() and session_unregister().
The aliases mysqli_bind_param(), mysqli_bind_result(), mysqli_client_encoding(), mysqli_fetch(), mysqli_param_count(), mysqli_get_metadata(), mysqli_send_long_data(), mysqli::client_encoding() and mysqli_stmt::stmt().
2. New features 新功能
1)traits特性的功能相当使一个类可以存在两个父类。在php5.4之前,一个类不能继承两个父类。
2)数组可以类似c/c++写法
3)Class::{expr}() 这个写法有点迷糊
4)支持二进制数值,即二进制直接写赋值给变量:
$bin = 0b1101;
echo $bin;
//13
而不必使用bin2dec转换成十进制
Short array syntax has been added, e.g. $a = [1, 2, 3, 4]; or $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];.
Function array dereferencing has been added, e.g. foo()[0].
Closures now support $this.
<?= 可以直接使用,与 short_open_tag php.ini 选项无关
类成员直接调用: (new Foo)->bar().
二进制变量:0b001001101.
3 . Deprecated features in PHP 5.4.x 弃用的功能
Deprecated functions:
mcrypt_generic_end()
mysql_list_dbs()
PHP 5.3.x 中弃用的功能
PHP 5.3.0 新增了两个错误等级: E_DEPRECATED 和 E_USER_DEPRECATED. 错误等级 E_DEPRECATED 被用来说明一个函数或者功能已经被弃用. E_USER_DEPRECATED 等级目的在于表明用户代码中的弃用功能, 类似于 E_USER_ERROR 和 E_USER_WARNING 等级.
下面是被弃用的 INI 指令列表. 使用下面任何指令都将导致 E_DEPRECATED 错误.
- define_syslog_variables
- register_globals
- register_long_arrays
- safe_mode
- magic_quotes_gpc
- magic_quotes_runtime
- magic_quotes_sybase
- 弃用 INI 文件中以 '#' 开头的注释.
- set_magic_quotes_runtime();
- mysql_close(); // 将不支持全部关闭, 需要改为:mysql_close($link);
弃用函数:
- call_user_method() (使用 call_user_func() 替代)
- call_user_method_array() (使用 call_user_func_array() 替代)
- define_syslog_variables()
- dl()
- ereg() (使用 preg_match() 替代)
- ereg_replace() (使用 preg_replace() 替代)
- eregi() (使用 preg_match() 配合 'i' 修正符替代)
- eregi_replace() (使用 preg_replace() 配合 'i' 修正符替代)
- set_magic_quotes_runtime() 以及它的别名函数 magic_quotes_runtime()
- session_register() (使用 $_SESSION 超全部变量替代)
- session_unregister() (使用 $_SESSION 超全部变量替代)
- session_is_registered() (使用 $_SESSION 超全部变量替代)
- set_socket_blocking() (使用 stream_set_blocking() 替代)
- split() (使用 preg_split() 替代)
- spliti() (使用 preg_split() 配合 'i' 修正符替代)
- sql_regcase()
- mysql_db_query() (使用 mysql_select_db() 和 mysql_query() 替代)
- mysql_escape_string() (使用 mysql_real_escape_string() 替代)
- 废弃以字符串传递区域设置名称. 使用 LC_* 系列常量替代.
- mktime() 的 is_dst 参数. 使用新的时区处理函数替代.
弃用的功能:
- 弃用通过引用分配 new 的返回值.
- 调用时传递引用被弃用.
- 没有相关文章
- 没有评论