做PHP的相信都知道,從PHP5.3開始加入了一個新的報錯層級DEPRECATED,即將廢棄/到期。我們一個個版本來過。
在php5.3被放棄的函數有:
代碼如下 |
|
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() 替代) mysql_close(); // 將不支援全部關閉, 需要改為:mysql_close($link); |
廢棄以字串傳遞地區設定名稱. 使用 LC_* 系列常量替代.
mktime() 的 is_dst 參數. 使用新的時區處理函數替代.
PHP 5.4
代碼如下 |
|
mcrypt_generic_end() mysql_list_dbs() |
PHP 5.5
代碼如下 |
|
mcrypt_cbc() mcrypt_cfb() mcrypt_ecb() mcrypt_ofb() |
其中,PHP 5.3是廢棄函數的開始,很多常用的以前的正則ereg全部替換preg,這個還好我以前知道。都替換了,但是魔術引號。。居然也從PHP 5.3開始棄用,PHP 5.4就移除了。這個算是PHP 5.3的一個大變動吧。
PHP 5.4開始新增了很多特性,這個大家可以網上搜尋下,新增很多特殊寫法。可能按照新寫法,老程式員就看不太懂啦~~~
PHP 5.5怎麼說呢,今天才發現的~居然把MYSQL這個擴充去掉了,建議使用MYSQLI或者PDO。。。用了5.5很多程式都會報錯,提示mysql_connect即將到期~~~會看到如下錯誤
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in E:testnew 6.php on line 6
PHP5相對於4的跨進最大的就是類的部分,而影響更多的就是廢棄這些老習慣的東西吧。雖然版本一直在升級,但是終究市場上還是大量的5.1.6-5.2.17。5.3開始廢棄很多特性,導致很多程式也不敢直接上,5.5.直接秒殺了大量開源呵呵~~~