付録
PHP Manual

変更履歴

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

VersionFunctionDescription
PHP 7.2.0imageantialiasimageantialias が常に使えるようになりました。 これまでのバージョンでは、PHP にバンドルされている GD ライブラリでコンパイルした場合にしか使えませんでした。
 imagelayereffectIMG_EFFECT_MULTIPLY が追加されました (システムの libgd が 2.1.1 以降であるか、バンドルされている libgd を使う必要があります)。
PHP 5.3.19imagecreatefromxpmimagecreatefromxpm が Windows でも使えるようになりました。
PHP 5.3.3imap_fetch_overviewupdate プロパティが追加されました。
7.2.0imagegdimagegd が truecolor 画像を出力できるようになりました。 これまでのバージョンでは、暗黙のうちにパレット画像に変換されていました。
7.1.0file_get_contents負の offset をサポートするようになりました。
 getimagesizeWebP に対応しました。
 grapheme_extract負の start をサポートするようになりました。
 grapheme_stripos負の offset をサポートするようになりました。
 grapheme_strpos負の offset をサポートするようになりました。
 iconv_strpos負の offset をサポートするようになりました。
 json_encodedouble 値をエンコードする際に、 precision ではなく serialize_precision を使うようになりました。
 mb_ereg_replacee 修飾子が非推奨になりました。
 mb_ereg_search_setpos負の position をサポートするようになりました。
 mb_eregi_replacee 修飾子が非推奨になりました。
 mb_strimwidth負の start と width をサポートするようになりました。
 mb_stripos負の offset をサポートするようになりました。
 mb_strpos負の offset をサポートするようになりました。
 output_add_rewrite_varPHP 7.1.0 より前のバージョンでは、output_add_rewrite_var で設定したリライト変数は、透過的セッションID出力バッファと同じセッションモジュールを使っていました。 PHP 7.1.0 以降では、専用の出力バッファを用いるようになりました。 url_rewriter.tags はただ関数の出力にだけ使われるようになり、 url_rewriter.hosts が追加されました。
 output_reset_rewrite_varsPHP 7.1.0 より前のバージョンでは、output_add_rewrite_var で設定したリライト変数は、透過的セッションID出力バッファと同じセッションモジュールを使っていました。 PHP 7.1.0 以降では、専用の出力バッファを用いるようになり、 output_reset_rewrite_vars は output_add_rewrite_var. で定義したリライト変数だけを削除するようになります。
 stripos負の offset をサポートするようになりました。
 strpos負の offset をサポートするようになりました。
 substr_count負の offset と length をサポートするようになりました。
7.0.7curl_multi_setoptCURLMOPT_CHUNK_LENGTH_PENALTY_SIZE、 CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE、 CURLMOPT_MAX_HOST_CONNECTIONS、 CURLMOPT_MAX_PIPELINE_LENGTH、 CURLMOPT_MAX_TOTAL_CONNECTIONS が追加されました。
 curl_setoptCURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_2TLS, CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303, CURL_REDIR_POST_ALL, CURL_VERSION_KERBEROS5, CURL_VERSION_PSL, CURL_VERSION_UNIX_SOCKETS, CURLAUTH_NEGOTIATE, CURLAUTH_NTLM_WB, CURLFTP_CREATE_DIR, CURLFTP_CREATE_DIR_NONE, CURLFTP_CREATE_DIR_RETRY, CURLHEADER_SEPARATE, CURLHEADER_UNIFIED, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPT_CONNECT_TO, CURLOPT_DEFAULT_PROTOCOL, CURLOPT_DNS_INTERFACE, CURLOPT_DNS_LOCAL_IP4, CURLOPT_DNS_LOCAL_IP6, CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPT_HEADEROPT, CURLOPT_LOGIN_OPTIONS, CURLOPT_PATH_AS_IS, CURLOPT_PINNEDPUBLICKEY, CURLOPT_PIPEWAIT, CURLOPT_PROXY_SERVICE_NAME, CURLOPT_PROXYHEADER, CURLOPT_SASL_IR, CURLOPT_SERVICE_NAME, CURLOPT_SSL_ENABLE_ALPN, CURLOPT_SSL_ENABLE_NPN, CURLOPT_SSL_FALSESTART, CURLOPT_SSL_VERIFYSTATUS, CURLOPT_STREAM_WEIGHT, CURLOPT_TCP_FASTOPEN, CURLOPT_TFTP_NO_OPTIONS, CURLOPT_UNIX_SOCKET_PATH, CURLOPT_XOAUTH2_BEARER, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROXY_HTTP_1_0, CURLSSH_AUTH_AGENT, CURLSSLOPT_NO_REVOKE が追加されました。
7.0.0array_columninput にオブジェクトの配列を渡せるようになりました。
 assertassert が言語構造となり、関数ではなくなりました。 assertion に式を指定できるようになりました。 第二パラメータは、 exception (Throwable オブジェクトを渡した場合) あるいは description (PHP 5.4.8 以降でサポートされていたもの) のいずれかであると解釈されるようになりました。
 definearray が使えるようになりました。
 dirnameオプションのパラメータ levels が追加されました。
 dldl が PHP-FPM で無効になりました。
 getrusageThis function is now supported on Windows.
 gmmktimeis_dst パラメータが削除されました。
 imagepsbboxPHP が T1Lib をサポートしなくなったので、この関数からも削除されました。
 imagepsencodefontPHP が T1Lib をサポートしなくなったので、この関数からも削除されました。
 imagepsextendfontPHP が T1Lib をサポートしなくなったので、この関数からも削除されました。
 imagepsfreefontPHP が T1Lib をサポートしなくなったので、この関数からも削除されました。
 imagepsloadfontPHP が T1Lib をサポートしなくなったので、この関数からも削除されました。
 imagepsslantfontPHP が T1Lib をサポートしなくなったので、この関数からも削除されました。
 imagepstextPHP が T1Lib をサポートしなくなったので、この関数からも削除されました。
 is_numeric十六進表記(0xf4c3b00c など) の文字列は数値形式の文字列とみなされなくなりました。 つまり、is_numeric は FALSE を返すようになりました。
 list代入操作が行われる順倍が変わりました 。
 listlist の式をまったくの空にすることはできなくなりました 。
 list文字列は扱えなくなりました 。
 mcrypt_generic_endmcrypt_generic_end 関数が削除されました。
 mktimeis_dst パラメータが削除されました。
 ob_startob_start を出力バッファコールバックの内部で使う場合、 この関数は E_ERROR の代わりに E_RECOVERABLE_ERROR を発行して、カスタムエラーハンドラで対応できるようにします。
 parse_ini_fileハッシュマーク (#) をコメントとみなさないようになりました。
 preg_replace/e 修飾子をサポートしなくなりました。かわりに preg_replace_callback を使いましょう。
 session_startoptions パラメータが追加されました。
 set_exception_handlerexception_handler に渡すパラメータの型が、 Exception から Throwable に変わりました。
 setlocalecategory パラメータが文字列を受け付けなくなりました。 このバージョン以降では、定数 LC_* だけしか使えません。
 substrstring の文字数が start と等しい場合に空文字列を返すようになりました。 これまでのバージョンでは、FALSE を返していました。
 token_get_allオプションの flags パラメータと TOKEN_PARSE フラグが導入されました。
 unserializeoptions パラメータが追加されました。
 IntlDateFormatter::setTimeZoneIdこの関数は削除されました。
5.6.25, 7.0.10imagetypesIMG_WEBP が追加されました。
 SplFileObject::getCsvControl返り値の配列にエスケープ文字が追加されました。
5.6.16mysqli::real_connectMySQL Native Driver 用の MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT フラグが追加されました。
5.6.12gd_infoWebP Support が追加されました。
5.6.6json_encodeoption パラメータに JSON_PRESERVE_ZERO_FRACTION が追加されました。
5.6.5cryptsalt として "*0" が渡されたときに、 他の crypt の実装にあわせて "*1" を返すようになりました。 これより前のバージョンの PHP 5.6 では、間違った DES ハッシュを返していました。
5.6.3pack"q"、"Q"、"J"、"P" が追加され、64ビットの数値が使えるようになりました。
5.6.1parse_ini_fileINI_SCANNER_TYPED モードが新たに追加されました。
 sem_acquire$nowait パラメータが追加されました。
5.6.0array_fillnum にゼロを指定できるようになりました。これより前のバージョンでは、 num には正の数しか指定できませんでした。
 array_filterオプションのパラメータ flag と、定数 ARRAY_FILTER_USE_KEY および ARRAY_FILTER_USE_BOTH が追加されました。
 cryptsalt を省略下場合に E_NOTICE が発生するようになりました。
 curl_setoptCURLOPT_CLOSEPOLICY およびそれに関連する値が削除されました。
 curl_setoptCURLOPT_SAFE_UPLOAD のデフォルトが TRUE になりました。
 escapeshellargencoding パラメータのデフォルト値が、 default_charset の設定値に変わりました。
 escapeshellcmdencoding パラメータのデフォルト値が、 default_charset の設定値に変わりました。
 hash_algosgost-crypto のサポートが追加されました。GOST ハッシュ関数の実装には、 RFC 4357, section 11.2 で定義されている CryptoPro S-box テーブルを使っています。
 html_entity_decodeencoding パラメータのデフォルト値が、 default_charset の設定値に変わりました。
 htmlentitiesencoding パラメータのデフォルト値が、 default_charset の設定値に変わりました。
 htmlspecialcharsencoding パラメータのデフォルト値が、 default_charset の設定値に変わりました。
 json_decodetrue、 false および null は、すべて小文字のものだけを有効な値として受け付けるようになりました。 大文字が含まれる場合は警告が発生します。
 mb_regex_encodingデフォルトのエンコーディングが EUC-JP から UTF-8 に変わりました。
 mcrypt_create_ivsource のデフォルト値が MCRYPT_DEV_URANDOM になりました。
 mcrypt_decrypt無効なサイズの key や iv は、受け付けないようになりました。無効な値を受け取った場合、 mcrypt_decrypt は警告を発して FALSE を返します。 以前のバージョンでは、キーや IV のサイズが足りない場合は '\0' で埋めて、必要なサイズに合わせていました。
 mcrypt_encrypt無効なサイズの key や iv は、受け付けないようになりました。無効な値を受け取った場合、 mcrypt_encrypt は警告を発して FALSE を返します。 以前のバージョンでは、キーや IV のサイズが足りない場合は '\0' で埋めて、必要なサイズに合わせていました。
 pg_connectconnect_type として、定数 PGSQL_CONNECT_ASYNC が指定できるようになりました。
 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 をサポートするようになりました。
 stream_socket_enable_cryptoSTREAM_CRYPTO_METHOD_ANY_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, STREAM_CRYPTO_METHOD_ANY_SERVER, STREAM_CRYPTO_METHOD_TLSv1_0_SERVER, STREAM_CRYPTO_METHOD_TLSv1_1_SERVER, STREAM_CRYPTO_METHOD_TLSv1_2_SERVER が追加されました。
 stream_socket_enable_cryptocrypto_type がオプションになりました。
 substr_comparelength を 0 にもできるようになりました。
 unserializeシリアライズされたデータを改変して C: を O: に置き換え、オブジェクトのインスタンス化の際にコンストラクタを呼ばないようにしたものは、 処理に失敗するようになりました。
 ReflectionClass::newInstanceWithoutConstructorすべての内部クラスをインスタンス化できるようになりました。ただし final 宣言されたクラスは例外です。
 XMLReader::getAttributeNoXMLReader::getAttributeNo は、 属性が存在しない場合に NULL を返すようになりました。
 XMLReader::getAttributeNsXMLReader::getAttributeNS は、 属性が存在しない場合に NULL を返すようになりました。
5.5.22, 5.6.6flockwouldblock パラメータを、Windows でもサポートするようになりました。
5.5.21, 5.6.5SplFileObject::fputcsvescape パラメータが追加されました。
5.5.21cryptsalt として "*0" が渡されたときに、 他の crypt の実装にあわせて "*1" を返すようになりました。 これより前のバージョンの PHP では、間違った DES ハッシュを返していました。
5.5.19/5.6.3imagescalenew_height が負の数だったり省略されていたりした場合の、高さの計算の問題が修正されました。 これより前のバージョンでは、アスペクト比を正確に保つことができませんでした。
5.5.8DatePeriod::__constructend の型が DateTimeImmutable に変わりました。 これより前のバージョンでは DateTime でした。
5.5.7apache_request_headersCLI サーバーでもこの関数が使えるようになりました。
 apache_response_headersCLI サーバーでもこの関数が使えるようになりました。
 getallheadersCLI サーバーでもこの関数が使えるようになりました。
5.5.4fputcsvescape_char パラメータが追加されました。
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不正な文字列が渡された場合に、警告を発するようになりました。
 session_set_save_handlerオプションのパラメータ create_sid が追加されました。
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.0DatePeriod::__constructstart の型が DateTimeImmutable に変わりました。 これより前のバージョンでは、DateTime でした。
 curl_getinfoCURLINFO_RESPONSE_CODE、 CURLINFO_HTTP_CONNECTCODE、 CURLINFO_HTTPAUTH_AVAIL、 CURLINFO_PROXYAUTH_AVAIL、 CURLINFO_OS_ERRNO、 CURLINFO_NUM_CONNECTS、 CURLINFO_SSL_ENGINES、 CURLINFO_COOKIELIST、 CURLINFO_FTP_ENTRY_PATH、 CURLINFO_APPCONNECT_TIME、 CURLINFO_CONDITION_UNMET、 CURLINFO_RTSP_CLIENT_CSEQ、 CURLINFO_RTSP_CSEQ_RECV、 CURLINFO_RTSP_SERVER_CSEQ および CURLINFO_RTSP_SESSION_ID が追加されました。
 curl_setoptcURL リソースを、 CURLOPT_PROGRESSFUNCTION コールバックの最初の引数として渡すようになりました。
 curl_setoptCURLOPT_SHARE が追加されました。
 emptyempty が、変数だけではなく式にも対応するようになりました。 variables.
 imagerotateimagesetinterpolation 関数で設定した補間方式の影響を受けるようになりました。
 imagerotateignore_transparent が無視されるようになりました。
 ip2longこのバージョンより前は、Windows において、IPv4 のドット形式のアドレスでなくても ip2long が有効な数値を返すことがありました。
 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 から削除されました。
 IntlDateFormatter::setTimeZoneIdこの関数は非推奨になりました。
 mysqli::commitflags と name が追加されました。
 mysqli::optionsMYSQLI_SERVER_PUBLIC_KEY オプションが追加されました。
 mysqli::rollbackflags と name が追加されました。
 SoapClient::SoapClientssl_method オプションが追加されました。
5.4.43, 5.5.27, 5.6.11escapeshellarg感嘆符がスペースで置き換えられるようになりました。
 escapeshellcmd感嘆符がスペースで置き換えられるようになりました。
5.4.32, 5.5.16ucwordsdelimiters パラメータが追加されました。
5.4.8assertdescription パラメータが追加されました。 description はまた、 ASSERT_CALLBACK モードのコールバック関数の4番目の引数にも指定できるようになりました。
 mb_strcutlength に NULL を渡すと、文字列の末尾までのすべてのバイトを取り出すようになりました。 これより前のバージョンでは、NULL は 0 と同じ扱いでした。
 mb_substrlength に NULL を渡すと、文字列の末尾までのすべてのバイトを取り出すようになりました。 これより前のバージョンでは、NULL は 0 と同じ扱いでした。
5.4.7curl_getinfoCURLINFO_PRIMARY_IP、 CURLINFO_PRIMARY_PORT、 CURLINFO_LOCAL_IP および CURLINFO_LOCAL_PORT が追加されました。
 parse_urlhost の認識方法を修正し、 scheme を省略してコンポーネント区切りから始まる場合にも対応するようになりました。
5.4.4hex2bin入力の文字列長が奇数の場合に警告を発するようになりました。 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 モジュールあるいは Netscape/iPlanet/SunONE の NSAPI サーバーモジュール としてインストールされた時だけサポートされました。
 apache_response_headersこの関数は、FastCGI で使用可能になりました。 以前は、PHP が Apache モジュールあるいは Netscape/iPlanet/SunONE の NSAPI サーバーモジュール としてインストールされた時だけサポートされました。
 array_combineこれまでのバージョンでは、空の配列に対しては E_WARNING を発生させて FALSE を返していました。
 array_multisortarg で指定できるソートフラグに SORT_NATURAL と SORT_FLAG_CASE が追加されました。
 date_default_timezone_getタイムゾーンの判定時に環境変数 TZ を使わなくなりました。
 date_default_timezone_getタイムゾーンの判定時に、OS から得られる情報に頼らないようになりました。 推測に基づくタイムゾーンは信頼できないからです。
 debug_backtraceオプションのパラメータ limit が追加されました。
 debug_print_backtraceオプションのパラメータ limit が追加されました。
 define_syslog_variablesこの関数は PHP から削除されました。
 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 モジュールあるいは Netscape/iPlanet/SunONE の NSAPI サーバーモジュール としてインストールされた時だけサポートされました。
 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 パラメータが追加されました。
 iconvこのバージョン以降は、出力文字セットに //IGNORE が指定されていない限り、 無効な文字に対して FALSE を返すようになりました。 以前のバージョンでは、出力文字列の一部だけを返していました。
 imagecolorsetalpha パラメータが追加されました。
 imagegdストリームリソースを to に渡せるようになりました。
 imagegd2ストリームリソースを to に渡せるようになりました。
 imagegifストリームリソースを to に渡せるようになりました。
 imagejpegストリームリソースを to に渡せるようになりました。
 imagejpegto に空文字列を渡してこの引数をスキップすることはできなくなりました。
 imagepngストリームリソースを to に渡せるようになりました。
 imagewbmpストリームリソースを to に渡せるようになりました。
 imagewebpストリームリソースを to に渡せるようになりました。
 isset文字列のオフセットに非数値を指定した場合は FALSE を返すようになりました。
 json_decodeoptions パラメータが追加されました。
 json_encodeoption に JSON_PRETTY_PRINT、JSON_UNESCAPED_SLASHES および JSON_UNESCAPED_UNICODE が追加されました。
 mb_encode_numericentityis_hex パラメータが追加されました。
 mysqli_get_cache_statsmysqli_get_cache_stats が削除されました。
 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.9DateTime::createFromFormat書式文字列 + が追加されました。
 is_aパラメータ allow_string が追加されました。
 is_subclass_ofパラメータ allow_string が追加されました。
5.3.7cryptBlowfish のモード $2x$ および $2y$ が追加され、高ビット攻撃に対応できるようになりました。
 curl_getinfoCURLINFO_REDIRECT_URL が追加されました。
 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.4copycontext パラメータが実際に効力を持つようになりました。 以前のバージョンでは、context に何を指定しても無視されていました。
 get_html_translation_tableencoding パラメータが追加されました。
 mt_randmax < min の場合に E_WARNING を発行して FALSE を返すようになりました。
 rawurlencoderawurlencode を EBCDIC 文字列で使った場合に、 チルダ文字をエンコードしなくなりました。
 sleepPHP 5.3.4 より前のバージョンでは、Windows で sleep を実行すると、遅延が発生したときには常に NULL を返していました。 処理が完了した場合もシグナルで中断した場合も同じです。
 strip_tagsstrip_tags は、 allowable_tags 内の自己終了型 XHTML タグを無視するようになりました。
 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_multisortarg で指定できるソートフラグに SORT_LOCALE_STRING が追加されました。
 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_getinfoCURLINFO_CERTINFO が追加されました。
 curl_setoptCURLOPT_PROGRESSFUNCTION が追加されました。
 date_default_timezone_setE_STRICT ではなく E_WARNING をスローするようになりました。
 define_syslog_variablesこの関数は E_DEPRECATED を発行するようになりました。
 dldl がいくつかの SAPI で無効になりました。 安定性に問題があったためです。 現在 dl が使える SAPI は CLI と Embed(組み込み) だけです。 かわりに 拡張モジュール読み込みディレクティブ を使ってください。
 dns_get_recordこれより前のバージョンでは、authns パラメータを指定したときには addtl パラメータも必須となっていました。
 dns_get_recordこの関数は、Windows プラットフォームでも動作するようになりました。
 error_reportingE_DEPRECATED と E_USER_DEPRECATED が追加されました。
 exif_imagetypeアイコンをサポートしました。
 expm1この関数はすべてのプラットフォームで使用できるようになりました。
 fgetcsvescape パラメータが追加されました。
 fnmatchこの関数は Windows プラットフォームでも動作するようになりました。
 func_get_argこの関数はパラメータリスト内で使用できるようになりました。
 func_get_argある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して FALSE を返すようになりました。
 func_get_argsある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して FALSE を返すようになりました。
 func_get_argsこの関数はパラメータリスト内で使用できるようになりました。
 func_num_argsある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して -1 を返すようになりました。
 func_num_argsこの関数はパラメータリスト内で使用できるようになりました。
 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パラメータ longopts がすべてのプラットフォームで使えるようになりました。
 getoptこの関数はシステムに依存しなくなり、今では Windows でも動作するようになりました。
 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_ivsrand を最初に呼び出す必要はもはやありません。 これは現在自動的に行われます。
 mcrypt_create_ivMCRYPT_DEV_RANDOM 及び MCRYPT_DEV_URANDOM が Windows プラットフォーム上で利用可能になりました。
 mktimemktime は、 is_dst パラメータを使用した場合に E_DEPRECATED をスローするようになりました。
 mysql_db_queryこの関数は E_DEPRECATED をスローするようになりました。
 mysql_escape_stringこの関数は E_DEPRECATED をスローするようになりました。
 mysqli_get_cache_statsmysqli_get_cache_stats がスタブとして追加されました。
 nl2brオプションの is_xhtml パラメータが追加されました。 以前のバージョンでは、杖に '<br />' が挿入されていました。
 openssl_sealmethod パラメータが追加されました。
 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::optionsオプション MYSQLI_OPT_INT_AND_FLOAT_NATIVE、 MYSQLI_OPT_NET_CMD_BUFFER_SIZE、 MYSQLI_OPT_NET_READ_BUFFER_SIZE および MYSQLI_OPT_SSL_VERIFY_SERVER_CERT が追加されました。
 mysqli::query非同期クエリ機能が追加されました。
 ReflectionFunction::__constructname に クロージャ を指定できるようになりました。
 SplFileObject::setCsvControlescape パラメータが追加されました。
 SplObjectStorage::attachdata パラメータが追加されました。
 XMLReader::expandbasenode パラメータが追加されました。
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 が追加されました。
 curl_getinfoCURLINFO_PRIVATE が追加されました。
 curl_setoptCURLOPT_PRIVATE が追加されました。
 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_all二番目の要素として行番号を返すようになりました。
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 が追加されました。
 realpathこれより前のバージョンでは、path が空文字列あるいは NULL の場合に realpath は FALSE を返していました。
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 パラメータの内容を 検証するようになりました。
 headerこの関数は一度に複数のヘッダを送信できないようになりました。 これは、ヘッダインジェクション攻撃への対策です。
 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タイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
 mktimeis_dst パラメータは廃止されました。 エラー時には -1 ではなく FALSE を返すようになりました。 年月日がすべてゼロとすることが可能になりました。
 mktime引数なしでコールすると、mktime は E_STRICT notice を発行するようになりました。かわりに time 関数を使用しましょう。
 mssql_connectパラメータ new_link が追加されました。
 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.4msql_fetch_arrayNULL 値を含むカラムからデータを取得する際のバグが修正されました。 そのようなカラムは結果の配列に含まれていませんでした。
 msql_fetch_objectNULL 値を含むカラムからデータを取得する際のバグが修正されました。 そのようなカラムは結果の配列に含まれていませんでした。
 msql_fetch_rowNULL 値を含むカラムからデータを取得する際のバグが修正されました。 そのようなカラムは結果の配列に含まれていませんでした。
5.0.3get_class_varsget_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 として使用している場合にのみ利用可能でした。
 curl_setoptCURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE および CURLOPT_HTTP200ALIASES が追加されました。
 dirnamedirname がバイナリセーフとなりました。
 error_reportingE_STRICT が追加されました (これは E_ALL には含まれません)。
 is_aこの関数は非推奨となり、かわりに instanceof 演算子の使用が推奨されるようになりました。この関数をコールすると E_STRICT が発生します。
 opendirpath が ftp:// URL ラッパーをサポートします。
 parse_ini_file値をダブルクォートで囲めばその中で改行を使用することもできます。
 renamerename は いくつかの URL ラッパーを併用することができるようになりました。 rename をサポートしているラッパーの一覧については、 を参照ください。
 rmdirPHP 5.0.0 以降、rmdir は いくつかの URL ラッパーを併用することが可能です。 rmdir をサポートしているラッパーの一覧については、 を参照ください。
 strip_tagsstrip_tags がバイナリセーフとなりました。
 strrposneedle は 1 文字以上の文字列を指定可能です。
 strtotimeマイクロ秒も受け付けるようになりましたが、指定してもそれは無視されます。
 unlinkPHP 5.0.0 以降、unlinkは いくつかのURL ラッパーと共に使用することもできます。 unlinkをサポートするラッパーのリストについては をご覧ください。

付録
PHP Manual