付録
PHP Manual

変更履歴

標準添付の拡張モジュールには次のような変更がありました。

VersionFunctionDescription
5.6.0cryptsalt を省略下場合に E_NOTICE が発生するようになりました。
 curl_setoptCURLOPT_CLOSEPOLICY およびそれに関連する値が削除されました。
 pg_convert実験的な関数ではなくなりました。Boolean/NULL をサポートするようになりました。 未知のデータ型やサポートしていないデータ型は、バリデーションなしにエスケープします。 pg_convert は任意のデータ型で使えるようになりました。
 pg_delete実験的な関数ではなくなりました。定数 PGSQL_DML_ESCAPE が追加されました。 TRUE/FALSE や NULL をサポートするようになりました。
 pg_insert実験的な関数ではなくなりました。定数 PGSQL_DML_ESCAPE が追加されました。 TRUE/FALSE や NULL をサポートするようになりました。
 pg_lo_seekPostgreSQL 9.3 以降での 64 ビットラージオブジェクトに対応しました。 これを使うには、クライアントとサーバーがいずれも PostgreSQL 9.3 以降であることと、 PHP が 64 ビット版であることが必要です。
 pg_lo_tellPostgreSQL 9.3 以降での 64 ビットラージオブジェクトに対応しました。 これを使うには、クライアントとサーバーがいずれも PostgreSQL 9.3 以降であることと、 PHP が 64 ビット版であることが必要です。
 pg_lo_truncateAdded truncate function. It supports PostgreSQL 9.3's 64bit large object. Both client and server must support PostgreSQL 9.3 and PHP must be 64bit build to use 64bit large object.
 pg_meta_data実験的な関数ではなくなりました。デフォルト属性として "is enum" が追加されました。 extended フラグが追加されました。
 pg_select実験的な関数ではなくなりました。定数 PGSQL_DML_ESCAPE が追加されました。 TRUE/FALSE や NULL をサポートするようになりました。
 pg_update実験的な関数ではなくなりました。定数 PGSQL_DML_ESCAPE が追加されました。 TRUE/FALSE や NULL をサポートするようになりました。
5.6Countable::countオプションのパラメータ mode が追加されました。
5.5.7apache_request_headersCLI サーバーでもこの関数が使えるようになりました。
 apache_response_headersCLI サーバーでもこの関数が使えるようになりました。
 getallheadersCLI サーバーでもこの関数が使えるようになりました。
5.5.3/5.4.19pg_deletetable_name に対する SQL インジェクション、そして識別子に対する間接的な SQL インジェクションの問題を修正しました。
 pg_inserttable_name に対する SQL インジェクション、そして識別子に対する間接的な SQL インジェクションの問題を修正しました。
 pg_selecttable_name に対する SQL インジェクション、そして識別子に対する間接的な SQL インジェクションの問題を修正しました。
 pg_updatetable_name に対する SQL インジェクション、そして識別子に対する間接的な SQL インジェクションの問題を修正しました。
5.5.2DOMDocument::schemaValidateflags パラメータが追加されました。
 DOMDocument::schemaValidateSourceflags パラメータが追加されました。
5.5.1hex2bin入力が16進文字列として不正な場合に、警告を発するようになりました。
 pg_unescape_bytea不正な文字列が渡された場合に、警告を発するようになりました。
5.5.0/PECL 3.0.0IntlDateFormatter::createIntlCalendar オブジェクトを calendar に渡せるようになりました。 IntlTimeZone オブジェクトや DateTimeZone オブジェクトを timezone に渡せるようになりました。 無効なタイムゾーン ID (空文字列を含む) を timezone で指定できなくなりました。 timezone に NULL を指定した場合は、ICU のデフォルトではなく date_default_timezone_get が返すタイムゾーンを使うようになりました。
 IntlDateFormatter::formatIntlCalendar オブジェクトを value に渡せるようになりました。
 IntlDateFormatter::setCalendarIntlCalendar オブジェクトを渡せるようになりました。
5.5.0curl_setoptcURL リソースを、 CURLOPT_PROGRESSFUNCTION コールバックの最初の引数として渡すようになりました。
 curl_setoptCURLOPT_SHARE が追加されました。
 emptyempty が、変数だけではなく式にも対応するようになりました。 variables.
 gd_infoWebP Support が追加されました。
 imagerotateimagesetinterpolation 関数で設定した補間方式の影響を受けるようになりました。
 iterator_to_arrayiterator_to_array で use_keys パラメータを有効にしたときの、 integer や string 以外の型に対するサポートを強化しました。
 json_encodeパラメータ depth が追加されました。
 mysql_connectこの関数は E_DEPRECATED エラーを発するようになりました。
 mysql_db_namemysql_list_dbs 関数は非推奨となり、 E_DEPRECATED レベルのエラーが発生するようになりました。
 mysql_pconnectこの関数は E_DEPRECATED エラーを発するようになりました。
 mysql_tablenamemysql_tablename 関数は非推奨となり、 E_DEPRECATED レベルのエラーが発生するようになりました。
 pack"Z" が追加されました。Perl の "a" と互換性のある機能です。
 php_logo_guidphp_logo_guid は PHP から削除されました。
 phpinfoロゴの GUID がデータ URI に置き換わりました。そのため、expose_php をオフにしても phpinfo() の結果には何も影響が出なくなりました。クレジットも、リンクではなく出力に埋め込まれるようになりました。
 preg_replace/e 修飾子が非推奨になりました。かわりに preg_replace_callback を使いましょう。 セキュリティ上のリスクの関する詳細は PREG_REPLACE_EVAL のドキュメントを参照ください。
 set_error_handlererror_handler に NULL を渡せるようになりました。
 set_exception_handlerこれより前のバージョンでは、NULL を渡した場合の返り値が TRUE でした。 PHP 5.5.0 以降は、以前に設定されていたハンドラを返すようになります。
 setcookieクライアントに送出する Set-Cookie ヘッダに、Max-Age 属性も含めるようになりました。
 setrawcookieクライアントに送出する Set-Cookie ヘッダに、Max-Age 属性も含めるようになりました。
 unpackPerl の関数に動きを近づけるための変更をしました。 "a" は最後の NULL バイトを維持するようになりました。 "A" は最後の ASCII 空白文字 (スペース、タブ、改行、キャリッジリターン、 NULL バイト) をすべて取り除くようになりました。 NULL 埋め文字列用に "Z" が追加されました。これは最後の NULL バイトを取り除きます。 NULL bytes.
 zend_logo_guidzend_logo_guid 関数は PHP から削除されました。
 mysqli::commitflags と name が追加されました。
 mysqli::optionsMYSQLI_SERVER_PUBLIC_KEY オプションが追加されました。
 mysqli::rollbackflags と name が追加されました。
 SoapClient::SoapClientssl_method オプションが追加されました。
5.4.8assertdescription パラメータが追加されました。 description はまた、 ASSERT_CALLBACK モードのコールバック関数の4番目の引数にも指定できるようになりました。
5.4.7parse_urlhost の認識方法を修正し、 scheme を省略してコンポーネント区切りから始まる場合にも対応するようになりました。
5.4.1hex2bin入力の文字列長が奇数の場合に警告を発するようになりました。 PHP 5.4.0 ではそんな文字列も黙って受け入れていましたが、 最終バイトは切り捨てられていました。
5.4.0/PECL 2.0.0b1idn_to_asciiパラメータ variant と idna_info が追加され、UTS #46 をサポートするようになりました。
 idn_to_utf8パラメータ variant と idna_info が追加され、UTS #46 をサポートするようになりました。
5.4.0DOMDocument::loadHTMLoptions パラメータが追加されました。
 DOMDocument::loadHTMLFileoptions パラメータが追加されました。
 apache_child_terminateこの関数は、FastCGI で使用可能になりました。 以前は、PHP が Apache モジュールとしてインストールされた時だけサポートされました。
 apache_request_headersこの関数は、FastCGI で使用可能になりました。 以前は、PHP が Apache モジュールとしてインストールされた時だけサポートされました。
 apache_response_headersこの関数は、FastCGI で使用可能になりました。 以前は、PHP が Apache モジュールとしてインストールされた時だけサポートされました。
 array_combineこれまでのバージョンでは、空の配列に対しては E_WARNING を発生させて FALSE を返していました。
 array_multisortSORT_NATURAL と SORT_FLAG_CASE が、 arg のソートフラグに追加されました。
 date_default_timezone_getタイムゾーンの判定時に環境変数 TZ を使わなくなりました。
 date_default_timezone_getタイムゾーンの判定時に、OS から得られる情報に頼らないようになりました。 推測に基づくタイムゾーンは信頼できないからです。
 debug_backtraceオプションのパラメータ limit が追加されました。
 debug_print_backtraceオプションのパラメータ limit が追加されました。
 dns_get_recordraw パラメータが追加されました。
 empty文字列のオフセットに非数値を指定した場合は TRUE を返すようになりました。
 error_reportingE_STRICT が E_ALL に含まれるようになりました。
 filter_input_arrayadd_empty パラメータが追加されました。
 filter_var_arrayadd_empty パラメータが追加されました。
 get_html_translation_table定数 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。
 get_html_translation_tableencoding パラメータのデフォルトが UTF-8 に変わりました。
 get_magic_quotes_gpcマジッククォート機能は削除され、常に FALSE 返すようになりました。
 get_magic_quotes_runtimeマジッククォート機能は削除され、常に FALSE 返すようになりました。
 getallheadersこの関数は、FastCGI で使用可能になりました。 以前は、PHP が Apache モジュールとしてインストールされた時だけサポートされました。
 gzcompressencoding パラメータが追加されました。
 gzdeflateencoding パラメータが追加されました。
 gzencodeFORCE_DEFLATE が RFC 1950 準拠の出力を生成するようになりました。 output.
 hashtiger アルゴリズムで、ビッグエンディアンのバイトオーダーを使うようになりました。
 hash_algosjoaat、fnv132 および fnv164 のサポートを追加し、Salsa10 および Salsa20 のサポートを削除しました。
 html_entity_decode定数 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。
 htmlentitiesencoding パラメータのデフォルトが UTF-8 に変わりました。
 htmlentities定数 ENT_SUBSTITUTE、ENT_DISALLOWED、 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。
 htmlspecialcharsencoding パラメータのデフォルトが UTF-8 に変わりました。
 htmlspecialchars定数 ENT_SUBSTITUTE、ENT_DISALLOWED、 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。
 htmlspecialchars_decode定数 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。
 http_build_queryenc_type パラメータが追加されました。
 imagecolorsetalpha パラメータが追加されました。
 isset文字列のオフセットに非数値を指定した場合は FALSE を返すようになりました。
 json_decodeoptions パラメータが追加されました。
 json_encodeoption に JSON_PRETTY_PRINT、JSON_UNESCAPED_SLASHES および JSON_UNESCAPED_UNICODE が追加されました。
 mb_encode_numericentityis_hex パラメータが追加されました。
 number_formatこの関数は、 dec_point や thousands_sep に複数バイトを指定できるようになりました。 それまでは、複数のバイトを指定しても先頭の 1 バイトしか使われませんでした。
 ob_startob_start の三番目のパラメータが boolean erase (これを FALSE にすると、スクリプトの実行が終了するまで出力バッファを削除できなくなります) から integer flags に変わりました。 残念ながら、そのせいで API の互換性が崩れてしまい。 PHP 5.4.0 より前のバージョンで三番目のパラメータを使っていたコードは、 そのままでは期待通りに動かなくなりました。 この例 のようにして、両方のバージョンでの互換性を保つ必要があります。
 ob_startチャンクサイズに 1 を指定したときに、 1 バイトのチャンクを出力バッファに送るようになりました。
 openssl_decryptraw_output パラメータが options に変わりました。
 openssl_encryptraw_output パラメータが options に変わりました。
 preg_match_allmatches パラメータが必須ではなくなりました。
 scandirsorting_order 定数 が追加されました。これまでのバージョンでは、非ゼロの値を指定するとすべて降順となっていました。 つまり、PHP のバージョンにかかわらず、次のようになります。 0 を指定すれば昇順、1 を指定すれば降順。 SCANDIR_SORT_NONE に対応する設定は、PHP 5.4.0 より前のバージョンにはありません。
 session_set_save_handlerSessionHandlerInterface でセッションハンドラを実装したり、 SessionHandler で PHP の内部セッションハンドラを公開したりできるようになりました。
 snmp_set_valueretrieval定数 SNMP_VALUE_PLAIN あるいは SNMP_VALUE_LIBRARY を SNMP_VALUE_OBJECT と組み合わせて使うと、 GET 関数が返す配列の value 要素の表現を変更できるようになりました。 定数 SNMP_VALUE_{PLAIN,LIBRARY} のどちらも SNMP_VALUE_OBJECT につけなかった場合は SNMP_VALUE_LIBRARY を使います。 5.4.0 より前のバージョンでは SNMP_VALUE_OBJECT が事実上 SNMP_VALUE_OBJECT|SNMP_VALUE_PLAIN という意味でした。
 sortsort_flags に SORT_NATURAL と SORT_FLAG_CASE が使えるようになりました。
 Phar::setStublen パラメータが追加されました。
 PharData::setStublen パラメータが追加されました。
 SimpleXMLElement::getDocNamespacesfrom_root パラメータが追加されました。
 SoapClient::SoapClientkeep_alive オプションが追加されました。
5.4grapheme_substrlength に正の値を指定して、 引数の文字列がその長さより短かった場合に、start に基づいて残りのすべての文字列を返すようになりました。 以前のバージョンでは FALSE を返していました。
5.3.9is_aパラメータ allow_string が追加されました。
 is_subclass_ofパラメータ allow_string が追加されました。
5.3.7cryptBlowfish のモード $2x$ および $2y$ が追加され、高ビット攻撃に対応できるようになりました。
 is_subclass_ofclass_name にインターフェイスも使えるようになりました。
5.3.6DateTime::modify日付/時刻の絶対指定も効果を及ぼすようになりました。 これまでは、相対指定部分だけを用いていました。
 DOMDocument::saveHTMLnode パラメータが追加されました。
 array_product空の配列の積が 1 を返すようになりました。これまでのバージョンでは、空の配列に対しては 0 を返していました。
 debug_backtraceprovide_object パラメータが options パラメータに変わり、オプション DEBUG_BACKTRACE_IGNORE_ARGS が追加されました。
 debug_print_backtraceオプションのパラメータ options が追加されました。
 preg_matchoffset が subject よりも長いときに FALSE を返すようになりました。
 preg_match_alloffset が subject よりも長いときに FALSE を返すようになりました。
 PDO_MYSQL DSN5.3.6 より前のバージョンでは charset は無視されていました。
5.3.4get_html_translation_tableencoding パラメータが追加されました。
 mt_randmax < min の場合に E_WARNING を発行して FALSE を返すようになりました。
 rawurlencoderawurlencode を EBCDIC 文字列で使った場合に、 チルダ文字をエンコードしなくなりました。
 sleepPHP 5.3.4 より前のバージョンでは、Windows で sleep を実行すると、遅延が発生したときには常に NULL を返していました。 処理が完了した場合もシグナルで中断した場合も同じです。
 IntlDateFormatter::formatDateTime オブジェクトを value パラメータに渡せるようになりました。
 mysqli_driver::$report_modeレポートモードがプロセス単位ではなくリクエスト単位に変わりました。
5.3.3DOMXPath::evaluateregisterNodeNS パラメータが追加されました。
 DOMXPath::queryregisterNodeNS パラメータが追加されました。
 html_entity_decodeデフォルトのエンコーディングが ISO-8859-1 から UTF-8 に変わりました。
 json_encodeoption に JSON_NUMERIC_CHECK が追加されました。
 ldap_sasl_bindWindows をサポートするようになりました。
 openssl_decryptiv パラメータが追加されました。
 openssl_encryptiv パラメータが追加されました。
 parse_urlURL のパースに失敗したときに E_WARNING を発生させないようになりました。
5.3.2 (PECL OCI8 1.4)oci_set_prefetchこれより前のバージョンでは、rows は 1 以上でなければなりませんでした。
5.3.2cryptSHA-256 および SHA-512 による暗号化が追加されました。Ulrich Drepper の 実装 を使っています。
 cryptBlowfish で無効な rounds を指定したときに、DES に切り替えるのではなく "failure" 文字列 ("*0" あるいは "*1") を返すようになりました。
 flockファイルのリソースハンドルを閉じたときにロックを自動的に解放する機能が削除されました。 ロックの解放は、常に手動で行わなければなりません。
 gmp_initbase が拡張され、2 から 36 までだったのが 2 から 62 までおよび -2 から -36 までとなりました。
 gmp_strvalbase が拡張され、2 から 36 までだったのが 2 から 62 までおよび -2 から -36 までとなりました。
 imap_appendINTERNALDATE のサポートが追加されました。
 imap_openparams が追加されました。
5.3.1get_defined_constantsWindows のみ: コア定数のカテゴリが Core になりました。 それまでは mhash でした。
 ibase_query成功した場合で変更された行がなかったときに TRUE を返すようになりました。 これまでは 0 (ゼロの後ろにスペースが続きます) を返していました。
 renamerename は Windows で別のドライブにリネームできるようになりました。
5.3.0 (PECL OCI8 1.3.4)oci_set_prefetchこれより前のバージョンでは、プリフェッチの上限は rows 行と 1024 * rows バイトのうちの少ないほうでした。 バイト数の制限は、このバージョンで取り除かれました。
5.3.0DateTime::__constructtime が 日付と時刻の書式 として無効な場合に、例外がスローされるようになりました。 これまではエラーが発生していました。
 DateTime::modify成功した場合の返り値が NULL から DateTime に変更されました。
 DateTime::setDate成功した場合の返り値が NULL から DateTime に変更されました。
 DateTime::setISODate成功した場合の返り値が NULL から DateTime に変更されました。
 DateTime::setTime成功した場合の返り値が NULL から DateTime に変更されました。
 DateTime::setTimezone成功した場合の返り値が NULL から DateTime に変更されました。
 DateTimeZone::getTransitionsオプションの timestamp_begin および timestamp_end が追加されました。
 DateTimeZone::listIdentifiersオプションのパラメータ what および country が追加されました。
 DirectoryIterator::__constructpath を開けない場合に UnexpectedValueException をスローします。
 acoshこの関数はすべてのプラットフォームで使用できるようになりました。
 array_multisortSORT_LOCALE_STRING が、 arg のソートフラグに追加されました。
 array_reduceinitial に mixed を指定できるようになりました。 これまでは integer のみでした。
 array_search他のすべての内部関数と同様、無効なパラメータが渡されたときに array_search は NULL を返すようになりました。
 asinhこの関数はすべてのプラットフォームで使用できるようになりました。
 atanhこの関数はすべてのプラットフォームで使用できるようになりました。
 call_user_funcオブジェクト指向のキーワード、たとえば parent や self などの処理方法が変わりました。 これまでは、ダブルコロン構文を使ってこれらをコールすると E_STRICT 警告が発生していました。静的コールと判断されたからです。
 call_user_func_arrayオブジェクト指向のキーワード、たとえば parent や self などの処理方法が変わりました。 これまでは、ダブルコロン構文を使ってこれらをコールすると E_STRICT 警告が発生していました。静的コールと判断されたからです。
 checkdnsrrこの関数は、Windows プラットフォームでも動作するようになりました。
 clearstatcacheオプションのパラメータ clear_realpath_cache と filename が追加されました。
 copyコンテキストのサポートが追加されました。
 cryptPHP に MD5 crypt, Standard DES, Extended DES および Blowfish の実装が含まれるようになりました。システム側でこれらのアルゴリズムがサポートされていない場合に、 この実装を使用します。
 curl_setoptCURLOPT_PROGRESSFUNCTION が追加されました。
 date_default_timezone_setE_STRICT ではなく E_WARNING をスローするようになりました。
 define_syslog_variablesこの関数は E_DEPRECATED を発行するようになりました。
 dldl がいくつかの SAPI で無効になりました。 安定性に問題があったためです。 現在 dl が使える SAPI は CLI と Embed(組み込み) だけです。 かわりに 拡張モジュール読み込みディレクティブ を使ってください。
 dns_get_recordこの関数は、Windows プラットフォームでも動作するようになりました。
 dns_get_recordこれより前のバージョンでは、authns パラメータを指定したときには addtl パラメータも必須となっていました。
 error_reportingE_DEPRECATED と E_USER_DEPRECATED が追加されました。
 exif_imagetypeアイコンをサポートしました。
 expm1この関数はすべてのプラットフォームで使用できるようになりました。
 fgetcsvescape パラメータが追加されました。
 fnmatchこの関数は Windows プラットフォームでも動作するようになりました。
 func_get_argこの関数はパラメータリスト内で使用できるようになりました。
 func_get_argある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して FALSE を返すようになりました。
 func_get_argsこの関数はパラメータリスト内で使用できるようになりました。
 func_get_argsある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して FALSE を返すようになりました。
 func_num_argsこの関数はパラメータリスト内で使用できるようになりました。
 func_num_argsある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して -1 を返すようになりました。
 gd_infoJPG Support 属性が JPEG Support という名前に変わりました。
 get_cfg_varget_cfg_var は、 配列形式の ini オプションを返せるようになりました。
 get_classNULL が object のデフォルトとなりました。 したがって、NULL を object に渡すのは何も指定しないのと同じ意味ということになります。
 get_defined_constantsコア定数のカテゴリが Core になりました。 それまでは internal でした。Windows では、 コア定数のカテゴリは mhash となります。
 get_object_varsobject がオブジェクトではない場合に NULL を返すようになりました。 これより前のバージョンでは、FALSE を返していました。
 getimagesizeアイコンに対応しました。
 getmxrrこの関数は、Windows プラットフォームでも動作するようになりました。
 getoptこの関数はシステムに依存しなくなり、今では Windows でも動作するようになりました。
 getoptパラメータ longopts がすべてのプラットフォームで使えるようになりました。
 getopt"=" を引数/値の区切り文字として使用できるようになりました。
 getoptオプションの値 ("::" で指定します) に対応しました。
 hash_algosmd2、ripemd256、ripemd320、salsa10、salsa20、snefru256 および sha224 のサポートを追加しました。
 htmlentities定数 ENT_IGNORE が追加されました。
 htmlspecialchars定数 ENT_IGNORE が追加されました。
 imagecolorclosesthwbこの関数は Windows でも使用可能となりました。
 inet_ntopこの関数は Windows プラットフォームでも使用可能となりました。
 inet_ptonこの関数は Windows プラットフォームでも使用可能となりました。
 ini_get指定したオプションが存在しない場合に、空文字列ではなく FALSE を返すようになりました。
 ini_get_alldetails が追加されました。
 is_aこの関数は非推奨ではなくなりました。そのため E_STRICT も発生しなくなりました。
 json_decodeオプションの depth が追加されました。デフォルトの再帰の深さが 128 から 512 に増えました。
 json_encodeoptions パラメータが追加されました。
 linkこの関数は、Windows プラットフォーム (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。
 linkinfoこの関数は、Windows プラットフォーム (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。
 log1pこの関数はすべてのプラットフォームで使用できるようになりました。
 mb_get_infoエントリ "http_output_conv_mimetypes" が使用できるようになりました。
 mcrypt_create_ivMCRYPT_DEV_RANDOM 及び MCRYPT_DEV_URANDOM が Windows プラットフォーム上で利用可能になりました。
 mcrypt_create_ivsrand を最初に呼び出す必要はもはやありません。 これは現在自動的に行われます。
 mktimemktime は、 is_dst パラメータを使用した場合に E_DEPRECATED をスローするようになりました。
 mysql_db_queryこの関数は E_DEPRECATED をスローするようになりました。
 mysql_escape_stringこの関数は E_DEPRECATED をスローするようになりました。
 nl2brオプションの is_xhtml パラメータが追加されました。
 parse_ini_fileオプションのパラメータ scanner_mode が追加されました。 シングルクォートも変数の代入に使うことができます。 ハッシュ記号 (#) はコメントとしては扱われなくなり、 もし使うと警告が発生します。
 pg_lo_createオプションの object_id が追加されました。
 pg_lo_importオプションの object_id が追加されました。
 preg_quote- 文字がクォートされるようになりました。
 property_existsこの関数は、アクセス権に依存せずにプロパティの存在確認を行うようになりました。
 rawurlencodeRFC 3986 を満たすようになりました。
 readlinkこの関数は、Windows プラットフォーム (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。
 realpathこれより前のバージョンでは、*BSD システムでは realpath は最後の path コンポーネントのみが存在しない場合には失敗となりませんでした。 このバージョン以降では失敗となります。
 register_tick_functionTicks はスレッド化されたウェブサーバーモジュールをサポートするようになりました。
 roundmode パラメータが追加されました。
 session_start何らかの理由でセッションの開始に失敗した場合に FALSE を返すようになりました。 これより前のバージョンでは常に TRUE を返していました。
 setlocalecategory パラメータに 定数 LC_* ではなく文字列が渡された場合に、 この関数は E_DEPRECATED をスローするようになりました。
 shm_attachこの関数の返す値の型が、 integer から リソース に変わりました。
 socket_create_pairこの関数は、ふたたび Windows プラットフォームで使用可能となりました。
 spl_autoload_registerprepend パラメータが追加されました。
 spl_autoload_register名前空間に対応するようになりました。
 stream_context_createオプションの引数 params が追加されました。
 stream_socket_pairこの関数は、Windows プラットフォームでも使用可能となりました。
 stristrオプションの before_needle パラメータが追加されました。
 strlenこれより前のバージョンでは、配列を「Array」という文字列とみなして処理していました。 つまり文字列の長さは 5 になります。そして E_NOTICE レベルのエラーが発生します。
 strstrオプションの before_needle パラメータが追加されました。
 strtotimePHP 5.3.0 より前のバージョンでは、24:00 は無効なフォーマットとされており strtotime は FALSE を返していました。
 strtotimePHP 5.3.0 より前のバージョンでは、 strtotime の引数 time に this week や previous week、 last week、next week を指定すると、現在日時から数えて 7 日単位という解釈になっていました。 Monday から Sunday までという単位は考慮していませんでした。
 sybase_connectnew パラメータが追加されました。
 symlinkこの関数は、Windows プラットフォーム (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。
 time_nanosleepこの関数は Windows プラットフォームでも使用可能となりました。
 time_sleep_untilこの関数は Windows プラットフォームでも使用可能となりました。
 touchWindows 環境でディレクトリの最終更新日が変更できるようになりました。
 mysqli::__construct持続的な接続機能が追加されました。
 mysqli::query非同期クエリ機能が追加されました。
 ReflectionFunction::__constructname に クロージャ を指定できるようになりました。
 SplObjectStorage::attachdata パラメータが追加されました。
5.2.15mysqli_driver::$report_modeレポートモードがプロセス単位ではなくリクエスト単位に変わりました。
5.2.11get_defined_constantscategorize パラメータが正しく動作するようになりました。 これまでは categorize パラメータが !is_null($categorize) で解釈されており、 NULL 以外の値を指定すると定数を強制的にカテゴリ分類させてしまっていました。
5.2.10array_rand結果の配列のキーがシャッフルされなくなりました。
 array_uniquesort_flags のデフォルト値を SORT_STRING に戻しました。
 curl_setoptCURLOPT_PROTOCOLS および CURLOPT_REDIR_PROTOCOLS が追加されました。
 ip2longこのバージョンより前は、IPv4 のドット形式のアドレスでなくても ip2long が有効な数値を返すことがありました。
 natsortゼロ埋めされた数値形式の文字列 ('00005' など) では、基本的にゼロを無視するようになりました。
5.2.9array_uniqueオプションの sort_flags が追加され、 デフォルトは SORT_REGULAR となりました。5.2.9 より前のバージョンでは、 この関数は内部的に SORT_STRING によるソートを行っていました。
5.2.8XSLTProcessor::importStylesheetふたたび SimpleXMLElement も受け付けるようになりました。 PHP 5.2.6 より前は、この機能が壊れていました。
5.2.7error_logmessage_type の値として 4 が使用できるようになりました。
 parse_ini_file構文エラーが発生した場合は、空の配列ではなく FALSE を返すようになりました。
 roundround の内部での挙動が変更され、 C99 標準に準拠するようになりました。
 strtotime5.2.7 より前の PHP 5 では、「ある月の何回目の何曜日」 を取得するときにもしその月の初日がその曜日だった場合、 タイムスタンプが間違って一週間追加されてしまっていました。 これは 5.2.7 以降のバージョンでは修正されています。
5.2.6fopen'c' および 'c+' が追加されました。
5.2.5addcslashesエスケープシーケンス \v と \f が追加されました。
 debug_backtraceオプションのパラメータ provide_object が追加されました。
 imagefilterIMG_FILTER_COLORIZE でアルファチャネルをサポートするようになりました。
5.2.4array_slicelength のデフォルト値が NULL に変わりました。 NULL を指定すると、array の長さを使うようになります。 これより前のバージョンでは、NULL を指定した場合は長さゼロと見なされていました (つまり、何も返しませんでした)。
 checkdnsrrTXT type が追加されました。
 get_loaded_extensionsオプションの zend_extensions パラメータが追加されました。
 ldap_first_attributeber_identifier が削除されました。 これは PHP が自動的に処理するようになりました。
 ldap_next_attributeber_identifier が削除されました。 これは PHP が自動的に処理するようになりました。
 parse_ini_file数字から始まるキーおよびセクション名は、PHP では 整数 として評価されます。 よって、0 で始まる数字は 8 進数として評価され、0x で始まる数字は 16 進数として評価されます。
 stream_wrapper_registerflags パラメータが追加されました。
5.2.3getimagesize読み込み時にエラーが発生した場合のエラーレベルが、 E_WARNING から E_NOTICE に変わりました。
 htmlentitiesdouble_encode パラメータが追加されました。
 htmlspecialcharsdouble_encode パラメータが追加されました。
 json_decodeネストの制限が 20 から 128 に拡張されました。
 XMLWriter::writeElementcontent パラメータがオプションとなりました。
 XMLWriter::writeElementNScontent パラメータがオプションとなりました。
 PDOStatement::getColumnMetatable フィールド
5.2.2 - 5.2.6substrstart が負の切り出しを意味したり 切り出し位置を超える値になった場合に false を返すようになりました。 それ以外のバージョンでは、文字列の先頭から取得します。
5.2.2DOMDocument::registerNodeClass5.2.2 より前のバージョンでは、同一の baseclass を継承した新しいクラスを登録する際には、以前に登録されていた extendedclass の登録を解除する必要がありました。
 ftp_ssl_connectこの関数は、SSL 接続を使用できないときに FALSE を返すようになりました。 これまでは、SSL ではない接続に移行していました。
 phpinfo"Loaded Configuration File" 情報が追加されました。これまでは "Configuration File (php.ini) Path" しかありませんでした。
 preg_match名前つきサブパターンで、 (?<name>) や (?'name') といった構文が (?P<name>) のほかに使えるようになりました. 以前のバージョンでは (?P<name>) しか使えませんでした。
 preg_match_all名前付きサブパターンで、 (?<name>) や (?'name') のような構文を (?P<name>) と同様に受け入れるようになりました。 以前のバージョンでは (?P<name>) 形式しか使えませんでした。
 proc_terminateこれより前のバージョンでは、 指定したプロセス resource を破棄していました。
 token_get_all2 番目の要素として行番号を返すようになりました。
5.2.1iterator_to_arrayuse_keys パラメータが追加されました。
 json_decode基本型の JSON デコードに対応しました。
 memory_get_peak_usageこの関数を使用するために、 --enable-memory-limit でコンパイルすることは必須ではなくなりました。
 memory_get_usageこの関数を使用するために、 --enable-memory-limit でコンパイルすることは必須ではなくなりました。
 mt_srandPHP の Mersenne Twister 実装は、Richard Wagner による新たなシード生成アルゴリズムを使用するようになりました。 これまでのバージョンと同じシード値で同じ乱数列が生成されることはなくなりました。 この振る舞いが再び変わる見込みはありませんが、 それに関わらずこの振る舞いに頼るのは安全ではありません。
 proc_openother_options パラメータに オプション bypass_shell が追加されました。
5.2.0base64_decodestrict が追加されました。
 curl_multi_info_readmsgs_in_queue が追加されました。
 error_reportingE_RECOVERABLE_ERROR が追加されました。
 imagettftexttext で十六進形式のエンティティを指定できるようになりました。
 imap_openn_retries が追加されました。
 imap_reopenn_retries が追加されました。
 mb_strrposオプションのパラメータ offset が追加されました。
 memory_get_peak_usagereal_usage が追加されました。
 memory_get_usagereal_usage が追加されました。
 openssl_verifysignature_alg パラメータが追加されました。
 pathinfo定数 PATHINFO_FILENAME が追加されました。
 pg_escape_byteaconnection が追加されました。
 pg_escape_stringconnection が追加されました。
 session_get_cookie_params返される配列に、"httponly" エントリが追加されました。
 session_set_cookie_paramshttponly パラメータが追加されました。
 set_error_handler$php_errormsg の内容を設定するため、エラーハンドラは必ず FALSE を返さなければなりません。
 setcookiehttponly パラメータが追加されました。
 setrawcookiehttponly パラメータが追加されました。
 snmp_set_oid_numeric_printPHP 5.2.0 以降で使えます。
 PDOStatement::executeinput_parameters のキーが SQL で宣言したものと一致しなければならないようになりました。 PHP 5.2.0 より前のバージョンでは一致しない場合は単に無視されるだけでした。
 SimpleXMLElement::childrenオプションのパラメータ is_prefix が追加されました。
 SimpleXMLElement::__constructns と is_prefix が追加されました。
 SoapServer::SoapServertypemap オプションが追加されました。
 XMLReader::openencoding および options が追加されました。
 XMLReader::XMLencoding および options が追加されました。
5.1.3DirectoryIterator::__constructpath が空文字列の場合に RuntimeException をスローします。
 curl_getinfoCURLINFO_HEADER_OUT が追加されました。
 get_headersこの関数はデフォルトのストリームコンテキストを使用します。 これは、stream_context_set_default 関数を使用して設定/変更することが可能です。
 http_build_query角括弧がエスケープされるようになりました。
 imagecolorallocate作成に失敗した場合に FALSE を返すようになりました。 これより前のバージョンでは、-1 を返していました。
 imagecolorallocatealpha作成に失敗した場合に FALSE を返すようになりました。 これより前のバージョンでは、-1 を返していました。
 imagepngfilters パラメータが追加されました。
 mb_get_infoエントリ "mail_charset", "mail_header_encoding" および "mail_body_encoding" が使用できるようになりました。
 SoapClient::__doRequestone_way パラメータが追加されました。
 XMLReader::getAttribute属性が見つからない場合に NULL を返すようになりました。 これより前のバージョンでは空文字列を返していました。
5.1.2date_default_timezone_settimezone_identifier パラメータの内容を 検証するようになりました。
 http_build_queryパラメータ arg_separator が追加されました。
 imagepngquality パラメータが追加されました。
 parse_urlパラメータ component が追加されました。
 SimpleXMLElement::__constructoptions と data_is_url が追加されました。
5.1.1datePHP 5.1.1 以降、format パラメータで標準的な 日付/時刻フォーマットを指定する際に有用な 定数がいくつか追加されました。
 debug_backtrace現在のオブジェクトを返せるようになりました。
 gmdatePHP 5.1.1 以降、format パラメータで標準的な 日付/時刻フォーマットを指定する際に有用な 定数がいくつか追加されました。
5.1.0DirectoryIterator::__constructエラーが発生したときに RuntimeException をスローします。 これより前のバージョンでは Exception をスローしていました。
 DOMDocument::saveoptions パラメータが追加されました。
 DOMDocument::saveXMLoptions パラメータが追加されました。
 class_implements文字列として class パラメータを渡すオプションが追加されました。 autoload パラメータが追加されました。
 class_parents文字列として class パラメータを渡すオプションが追加されました。 autoload パラメータが追加されました。
 ctype_digitPHP 5.1.0 より前のバージョンでは、この関数は text が空文字列の場合に TRUE を返していました。
 curl_setoptCURLOPT_AUTOREFERER, CURLOPT_BINARYTRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH および CURLOPT_TIMECONDITION が追加されました。
 date有効なタイムスタンプの範囲は、通常 Fri, 13 Dec 1901 20:45:54 GMT から Tue, 19 Jan 2038 03:14:07 GMT までです (これらの日付は、32 ビット符号付き整数の最小および最大値に 対応します)。 しかし、PHP 5.1 より前のバージョンでは、システム環境によっては (例: Windows) この範囲が 1970 年 1 月 1 日から 2038 年 1 月 19 日 までに制限されます。
 dateタイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
 date_sunriseタイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
 date_sunsetタイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
 explodelimit に負の数を指定できるようになりました。
 fgetcsvlength が必須ではなくなりました。 デフォルトは 0 で、これは長さの制限がないことを表します。
 file_get_contentsoffset と maxlen パラメータが追加されました。
 file_put_contentsLOCK_EX のサポートが追加され、 data パラメータにストリームリソースを指定することが可能になりました。
 get_parent_classオブジェクトの外部からパラメータなしでコールすると、 この関数は警告を発生したうえで NULL を返していました。しかし、今は FALSE を返します。
 gettimeofdayreturn_float パラメータが追加されました。
 globGLOB_ERR が追加されました。
 gmdate有効なタイムスタンプの範囲は、通常 Fri, 13 Dec 1901 20:45:54 GMT から Tue, 19 Jan 2038 03:14:07 GMT までです (これらの日付は、32 ビット符号付き整数の最小および最大値に 対応します)。 しかし、PHP 5.1 より前のバージョンでは、システム環境によっては (例: Windows) この範囲が 1970 年 1 月 1 日から 2038 年 1 月 19 日 までに制限されます。
 gmmktimePHP 5.1.0 で、is_dst パラメータは廃止されました。 その代わりに、新しいタイムゾーン処理機能が使用されます。
 idateタイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
 imagerotateignore_transparent が追加されました。
 intvalオブジェクトを var に渡すと、E_NOTICE が発生して 1 を返します。
 localtimeタイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
 md5_fileストリーム API を使用した関数に変更されました。 これは md5_file('http://example.com/..') のようなラッパーで利用可能であることを意味します。
 mktime引数なしでコールすると、mktime は E_STRICT notice を発行するようになりました。かわりに time 関数を使用しましょう。
 mktimeis_dst パラメータは廃止されました。 エラー時には -1 ではなく FALSE を返すようになりました。 年月日がすべてゼロとすることが可能になりました。
 mktimeタイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
 openssl_pkcs7_verifycontent パラメータが追加されました。
 preg_replacecount 引数が追加されました。
 preg_replace_callbackパラメータ count が追加されました。
 session_regenerate_iddelete_old_session パラメータが追加されました。
 sha1_fileストリーム API を使用するように変更しました。つまり、 sha1_file('http://example.com/..') のように ラッパーとともに使用できるということです。
 str_word_countcharlist パラメータが追加されました。
 stream_copy_to_streamoffset パラメータが追加されました。
 stream_filter_appendPHP 5.1.0 より前のバージョンでは、この関数は成功した場合に TRUE、 失敗した場合に FALSE を返します。
 stream_filter_prependPHP 5.1.0 より前のバージョンでは、この関数は 成功した場合に TRUE、 失敗した場合に FALSE を返します。
 stream_get_contentsoffset が追加されました。
 strftimeタイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
 strtotimeタイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
 strtotime失敗時に -1 の代わりに FALSE を返すようになりました。
 substr_compare負の offset を使用できるようになりました。
 substr_countoffset と length パラメータが追加されました。
 var_exportマジックメソッド __set_state() を使用することで、 クラスを含む配列やクラスをエクスポートできるようになりました。
 XSLTProcessor::registerPHPFunctionsrestrict パラメータが追加されました。
5.0.5php_check_syntaxこの関数は PHP から削除されました。
5.0.3get_class_varsスコープに応じて、get_class_vars は現在のスコープからアクセスできるプロパティのみを返すようになりました。
 is_subclass_ofobject パラメータに文字列 (クラス名) を指定可能です。
 php_check_syntaxphp_check_syntax の後に exit をコールするとセグメンテーションフォールトが発生します。
5.0.2array_sliceオプションのパラメータ preserve_keys が追加されました。
 class_exists定義済みのインターフェイスに対しては TRUE を返さないようになりました。 インターフェイスについては interface_exists を使用します。
 get_class_varsget_class_vars をコールすると、 すべてのプロパティが配列として公開されるようになりました。 これまでは、protected や private なプロパティの先頭には nul バイトが付加されていました。
 sortSORT_LOCALE_STRING が追加されました。
 strtotime5.0.2 までの PHP 5 では、"now" やその他の相対時刻は誤って当日の真夜中から計算されます。 他のバージョンでは、これは正しく現在時刻から計算されます。
5.0.1get_class_varsget_class_vars をコールすると、 オブジェクトをクラスに変換するときのように すべてのプロパティを公開するようになりました。
 php_check_syntaxerror_message が参照渡しになりました。
5.0.0apache_get_modulesApache 1 を使用している、もしくは Apache 2 で フィルター API として使用している場合に利用可能です。 以前は、Apache 2 の ハンドラ API として使用している場合にのみ利用可能でした。
 apache_get_versionApache 2 の フィルター API で利用可能です。
 array_keysstrict パラメータが追加されました。
 array_mergearray_merge の動作は PHP 5 で変更されました。PHP 4 とは異なり、 array_merge は、array 型のパラメータのみを受け取るようになりました。しかし、 他の型をマージするために型キャストを使用することも可能です。 詳細は以下の例を参照してください。 array_merge PHP 5 の例 <?php $beginning = 'foo'; $end = array(1 => 'bar'); $result = array_merge((array)$beginning, (array)$end); print_r($result); ?> 上の例の出力は以下となります。 Array ( [0] => foo [1] => bar )
 cal_infocalendar パラメータが省略可能となり、 省略した場合は "すべてのカレンダー" についての情報を返すようになりました。
 checkdnsrrAAAA type が追加されました。
 class_existsautoload パラメータが追加されました。
 com_releaseこの関数は削除されました。
 curl_setoptCURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE および CURLOPT_HTTP200ALIASES が追加されました。
 dirnamedirname がバイナリセーフとなりました。
 emptyプロパティがないオブジェクトが空だとみなされないようになりました。
 error_reportingE_STRICT が追加されました (これは E_ALL には含まれません)。
 extension_loadedextension_loaded は、 内部的な拡張モジュール名を使ってそのモジュールが使用可能かどうかを判断します。 内部的な拡張モジュール名はほとんどの場合は小文字ですが、 大文字を使っているものもあるかもしれません。PHP 5 より前のバージョンでは、 この関数は大文字小文字を区別して名前を比較していました。
 fgetsslength パラメータがオプションとなりました。
 filecontext パラメータが追加されました。
 filePHP 5.0.0 より前のバージョンでは、パラメータ flags でカバーしているのは include_path の設定だけでした。これを有効にするには 1 を指定します。
 file_get_contentsコンテキストサポートが追加されました。
 file_put_contentsコンテキストがサポートされるようになりました。
 get_classクラス名はその本来の表記で返されます。
 get_classobject パラメータは、 オブジェクトのメソッドからコールされた場合はオプションとなります。
 get_class_methodsPHP 5 以降、この関数は宣言されているままのメソッド名 (大文字小文字を区別) を返します。PHP 4 では、小文字で返されます。
 get_defined_constantsパラメータ categorize が追加されました。
 get_defined_vars返される配列に $GLOBALS 変数が 含まれます。
 get_parent_classオブジェクトのメソッドからコールされた場合、パラメータ object はオプションとなります。
 html_entity_decodeマルチバイトエンコーディングをサポートするようになりました。
 ip2longこのバージョンより前は、ip2long が失敗したときの返り値は -1 でした。
 is_aこの関数は非推奨となり、かわりに instanceof 演算子の使用が推奨されるようになりました。この関数をコールすると E_STRICT が発生します。
 is_executableis_executable は Windows でも使用可能となりました。
 jdtojewishfl パラメータが追加されました。
 mb_encode_mimeheaderindent パラメータが追加されました。
 mb_send_mailPHP 5.0.0 以降では、Content-Type および Content-Transfer-Encoding ヘッダの内容が 再定義可能となりました。PHP 4 では、常に mb_language で定義された値が用いられていました。
 md5raw_output パラメータが追加されました。
 md5_fileraw_output パラメータが追加されました
 microtimeget_as_float パラメータが追加されました。
 mkdirPHP 5.0.0 以降、mkdir は いくつかの URL ラッパーを併用することが可能です。 mkdir をサポートしているラッパーの一覧については、 を参照ください。
 mkdirrecursive パラメータが追加されました。
 mysql_fetch_objectさまざまな型のオブジェクトで結果を返せるようになりました。
 opendirpath が ftp:// URL ラッパーをサポートします。
 openssl_pkcs7_encryptcipherid パラメータが追加されました。
 openssl_signsignature_alg パラメータが追加されました。
 parse_ini_file値をダブルクォートで囲めばその中で改行を使用することもできます。
 pg_fetch_objectclass_name と params が追加されました。result_type を用いた古い形式は、過去のバージョンとの互換性を保つために残されています。
 proc_openパラメータ cwd、env および other_options が追加されました。
 rangeオプションのパラメータ step が追加されました。
 realpathこれより前のバージョンでは、path に空白や NULL を指定すると realpath はスクリプトディレクトリ名を返していました。
 renamerename は いくつかの URL ラッパーを併用することができるようになりました。 rename をサポートしているラッパーの一覧については、 を参照ください。
 rmdirPHP 5.0.0 以降、rmdir は いくつかの URL ラッパーを併用することが可能です。 rmdir をサポートしているラッパーの一覧については、 を参照ください。
 session_id, (カンマ) および - (マイナス) が、ファイルセッションハンドラで使用可能となりました。
 set_error_handlererror_types パラメータが追加されました。
 sha1raw_output パラメータが追加されました。
 sha1_fileraw_output パラメータが追加されました。
 socket_create定数 AF_INET6 が追加されました。
 str_ireplacecount パラメータが追加されました。
 str_replacecount パラメータが追加されました。
 stream_get_meta_data次の項目が返り値の配列に追加されました。 mode、seekable および uri。
 strip_tagsstrip_tags がバイナリセーフとなりました。
 strrposoffset パラメータが追加されました。
 strrposneedle は 1 文字以上の文字列を指定可能です。
 strtotimeマイクロ秒も受け付けるようになりましたが、指定してもそれは無視されます。
 uniqidパラメータ prefix が必須ではなくなりました。
 unlinkPHP 5.0.0 以降、unlinkは いくつかのURL ラッパーと共に使用することもできます。 unlinkをサポートするラッパーのリストについては をご覧ください。
 usleepこの関数は Windows 上でも動作するようになりました。
 mysqli_result::fetch_objectさまざまな型のオブジェクトで結果を返せるようになりました。

付録
PHP Manual