熟悉php
調用時的引用傳遞被移除mysql
<?php function foo(&$var) { $var = 'hello, word'; var_dump($var); } $var = 1111; foo($var);//正確的調用方法 foo(&$var);//過時用法,報出一個警告錯誤 ?>
在日期與時間擴展中,再也不支持時區使用 TZ(TimeZone)環境變量設置
php.ini中強烈建議配置date.timezone
或者在程序入口腳本配置環境時,使用date_default_timezone_set()設定時區算法
如今參數名使用全局變量將會致使一個致命錯誤sql
<?php //這樣的代碼,報致命錯誤 function foo($_GET, $_POST) {};
當使用兩個空數組做爲參數時, array_combine() 如今返回 array() 而不是 FALSE數據庫
瞭解windows
break 和 continue 語句再也不接受可變參數數組
<?php define('VAR', 10); while(true) { while(true) { //正確寫法 break 10; continue VAR; //錯誤寫法 break 10 - $var; contnue $var * 10; } }
NULL 、FALSE 、或 一個空字符串被添加成一個對象的屬性時將發出一條 E_WARNING 級別的錯誤,而不是 E_STRICT安全
移除的函數session
define_syslog_variables() import_request_variables() session_is_registered() 、 session_register() 以及 session_unregister() mysqli_bind_param() 、 mysqli_bind_result() 、 mysqli_client_encoding() mysqli_fetch() 、 mysqli_param_count() 、 mysqli_get_metadata()
過期的函數函數
mcrypt_generic_end() mysql_list_dbs()
sqlite擴展被移到 pecl擴展中,不包含在PHP發行版中
熟悉
瞭解
mcrypt 中的下列函數過時(在將來版本會被移除)
mcrypt_cbc() mcrypt_cfb() mcrypt_ecb() mcrypt_ofb()
intl 中的廢棄
IntlDateFormatter::setTimeZoneID() 和 datefmt_set_timezone_id() 如今被廢棄
可分別使用 IntlDateFormatter::setTimeZone() 方法和 datefmt_set_timezone() 函數做爲替代