PHP 7.3.x で推奨されなくなる機能
PHP コア
大文字小文字を区別しない定数
大文字小文字を区別せず、定数を宣言することは推奨されません。
define() 関数の第3引数に true
を渡すと、推奨されない警告が生成されるようになりました。宣言された定数と異なるケースで定数を使うことも推奨されません。
名前空間の中で assert() 関数の宣言
名前空間の中で assert()
と呼ばれる関数を宣言することは推奨されません。 assert()
関数は
PHPエンジンによって特別扱いされることが意図されているため、名前空間の中で同じ関数を宣言されると、一貫しない振る舞いに繋がる可能性があるからです。
文字列でない needle 引数による文字列の探索
文字列でない needle 引数で文字列検索関数を使うことは推奨されません。 将来的には、needle 引数は ASCII コードポイントではなく、文字列として解釈されるようになります。 あなたが意図する振る舞いに応じて、明示的に needle 引数を文字列にキャストするか、 chr() 関数を明示的に呼び出すべきです。 影響を受ける関数は以下のとおりです:
string.strip_tags ストリームフィルタ
fgetss() 関数と strip_tags ストリームフィルタ は推奨されません。 このことは SplFileObject::fgetss() メソッドと gzgetss() 関数にも影響します。
データのフィルタリング
FILTER_FLAG_SCHEME_REQUIRED
や
FILTER_FLAG_HOST_REQUIRED
を明示的に使うことは推奨されなくなりました。これらは
FILTER_VALIDATE_URL
に含まれています。
画像処理と GD
image2wbmp() 関数は推奨されなくなりました。
国際化関数
PHP が ICU バージョン56以上とリンクされた状態で Normalizer::NONE
を使うと、推奨されない警告が発生するようになりました。
マルチバイト文字列
以下のドキュメントに記されていない mbereg_*()
エイリアスは推奨されなくなりました。 対応する
mb_ereg_*()
関数を使ってください。
- mbregex_encoding()
- mbereg()
- mberegi()
- mbereg_replace()
- mberegi_replace()
- mbsplit()
- mbereg_match()
- mbereg_search()
- mbereg_search_pos()
- mbereg_search_regs()
- mbereg_search_init()
- mbereg_search_getregs()
- mbereg_search_getpos()
- mbereg_search_setpos()
ODBC と DB2 関数 (PDO_ODBC)
ini 設定 pdo_odbc.db2_instance_name は正式に推奨されなくなりました。ドキュメントでは、PHP 5.1.1 以降から推奨されないとされていました。