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 ファイルでは推奨されません。
推奨されない関数
- 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'
修正子を使用します) - mcrypt_generic_end()
- 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_* 系の定数を使用します。
-
is_dst
を mktime() に渡すこと。 かわりにタイムゾーン処理用の新しい関数を使用します。
推奨されない機能
- new の返り値を参照で代入すること
- 呼び出し時の参照渡し