変更履歴

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

VersionFunctionDescription
8.0.0 / 1.18.1ZipArchive::addGloboptions に "comp_method", "comp_flags", "enc_method", "enc_password" が追加されました。
8.0.0 / 1.18.0ZipArchive::addEmptyDirflags が追加されました。
 ZipArchive::addFileflags が追加されました。
 ZipArchive::addFromStringflags が追加されました。
 ZipArchive::addGloboptions に "flags" が追加されました。
 ZipArchive::getStatusStringこのメソッドは、閉じられたアーカイブに対しても呼び出せるようになりました。
7.4.4proc_openother_options パラメータに オプション create_new_console が追加されました。
7.4.0array_mergeこの関数は、引数なしでも呼び出せるようになりました。 このバージョンより前では、少なくともひとつの引数が必須でした。
 array_merge_recursiveこの関数は、引数なしでも呼び出せるようになりました。 このバージョンより前では、少なくともひとつの引数が必須でした。
 base_convert無効な文字を与えると、非推奨の警告が出るようになりました。 結果は不正な文字がなかったかのように計算されます。
 bindec無効な文字を与えると、非推奨の警告が出るようになりました。 結果は不正な文字がなかったかのように計算されます。
 fgetcsvescape パラメータが空文字列を受け入れるようになりました。 この場合、プロプライエタリなエスケープ機構が無効になります。
 fputcsvescape_char パラメータが、 プロプライエタリなエスケープ機構を無効にするために空文字列を受け入れるようになりました。
 get_magic_quotes_gpcこの関数は推奨されなくなりました。
 get_magic_quotes_runtimeこの関数は推奨されなくなりました。
 hexdec無効な文字を与えると、非推奨の警告が出るようになりました。 結果は不正な文字がなかったかのように計算されます。
 idn_to_asciivariant のデフォルト値が INTL_IDNA_VARIANT_UTS46 となり、 その代わりに INTL_IDNA_VARIANT_2003 は非推奨となりました。
 idn_to_utf8variant のデフォルト値が INTL_IDNA_VARIANT_UTS46 となり、 その代わりに INTL_IDNA_VARIANT_2003 は非推奨となりました。
 imagecropautoPHP にバンドルされた imagecropauto() の振る舞いは、 システムにインストールされる libgd のそれと同じになりました。 つまり、IMG_CROP_DEFAULT が IMG_CROP_SIDES にフォールバックすることはななくなり、 しきい値によるクロップは、 システムにインストールされる libgd のアルゴリズムと同じものを使うようになりました。
 imagecropautomode パラメータのデフォルト値が IMG_CROP_AUTO に変更されました。 これより前のバージョンでは、デフォルト値は -1 で、IMG_CROP_DEFAULT に対応しています。 しかし、-1 を渡すのは非推奨になりました。
 imagefilterScatter 効果のサポート (IMG_FILTER_SCATTER) が追加されました。
 implodepieces の後に glue を渡すこと (つまり、ドキュメントに記されたパラメータの順番を使用しないこと) は、推奨されなくなりました。
 ldap_control_paged_resultこの関数は非推奨になりました。
 ldap_control_paged_result_responseこの関数は非推奨になりました。
 money_formatこの関数は非推奨になりました。 代わりに、NumberFormatter::formatCurrency を使ってください。
 octdec無効な文字を与えると、非推奨の警告が出るようになりました。 結果は不正な文字がなかったかのように計算されます。
 proc_openother_options パラメータに オプション create_process_group が追加されました。
 proc_openproc_open 関数は、 cmd に array を渡せるようになりました。
 str_getcsvescape 引数は、 空文字列を、プロプライエタリなエスケープ機構を無効にするシグナルとして解釈するようになりました。 これより前のバージョンでは、空文字列はデフォルト値のように扱われていました。
 strip_tagsallowable_tags は、array も受け入れるようになりました。
 SplFileObject::fgetcsvescape パラメータは空文字列を受け入れるようになりました。 この場合、プロプライエタリなエスケープ機構が無効になります。
 SplFileObject::fputcsvescape パラメータは空文字列を受け入れるようになりました。 この場合、プロプライエタリなエスケープ機構が無効になります。
 SplFileObject::getCsvControlエスケープ文字は空文字列でも問題なくなりました。
 SplFileObject::setCsvControlescape パラメータは空文字列を受け入れるようになりました。 この場合、プロプライエタリなエスケープ機構が無効になります。
 SQLite3Stmt::bindParamsql_param は、 @param 記法もサポートするようになりました。
 SQLite3Stmt::bindValuesql_param が、新たに @param 記法をサポートしました。
7.3.15, 7.4.3curl_setoptCURLOPT_HTTP09_ALLOWED が追加されました。
7.3.14, 7.4.2dba_openlmdb ドライバは $mapsize パラメータを追加でサポートしました。
7.3.0DateTime::createFromFormat書式文字列 v が追加されました。
 apache_request_headersFPM SAPI でもこの関数が使えるようになりました。
 array_pushこの関数は、1 つのパラメータでのみ呼び出すことができるようになりました。 前は、少なくとも 2 つのパラメータが必要でした。
 array_unshiftこの関数は、1 つのパラメータでのみ呼び出すことができるようになりました。 前は、少なくとも 2 つのパラメータが必要でした。
 bcmulbcmul 関数が、指定されたスケールの数値を返すようになりました。 これより前のバージョンでは、 返される数値の末尾が 0埋め されることなく、省略される可能性がありました。
 bcpowbcpow 関数は、指定されたスケールで値を返すようになりました。 これより前のバージョンでは、後に続く0の桁が省略された数値が返される可能性がありました。
 bcscalebcscale は、現在のスケールを取得するために 使えるようになりました。スケールを設定する場合は、古いスケールの値を返します。 これより前のバージョンでは、 scale の指定が強制され、 bcscale は常に TRUE を返していました。
 compactcompact は、与えられた文字列が示す変数が未定義の場合、 E_NOTICE レベルのエラーを発行するようになりました。 以前のバージョンでは、設定されていない全ての文字列は、単にスキップされます。
 curl_getinfoCURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T, CURLINFO_TOTAL_TIME_T が追加されました。
 curl_setoptCURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPT_PRE_PROXY, CURLOPT_PROXY_CAINFO, CURLOPT_PROXY_CAPATH, CURLOPT_PROXY_CRLFILE, CURLOPT_PROXY_KEYPASSWD, CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPT_PROXY_SSLCERT, CURLOPT_PROXY_SSLCERTTYPE, CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPT_PROXY_SSLKEY, CURLOPT_PROXY_SSLKEYTYPE, CURLOPT_PROXY_SSL_OPTIONS, CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPT_PROXY_SSLVERSION, CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPT_SOCKS5_AUTH, CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPT_HAPROXYPROTOCOL, CURLOPT_PROXY_TLS13_CIPHERS, CURLOPT_SSH_COMPRESSION, CURLOPT_TIMEVALUE_LARGE および CURLOPT_TLS13_CIPHERS が追加されました。
 definecase_insensitive は非推奨になりました。 8.0.0 で削除される予定です。
 ftp_fgetmode パラメータはオプションになりました。 これより前のバージョンでは、このパラメータは必須でした。
 ftp_fputmode パラメータはオプションになりました。 これより前のバージョンでは、このパラメータは必須でした。
 ftp_getmode パラメータはオプションになりました。 これより前のバージョンでは、このパラメータは必須でした。
 ftp_nb_fgetmode パラメータはオプションになりました。 これより前のバージョンでは、このパラメータは必須でした。
 ftp_nb_fputmode パラメータはオプションになりました。 これより前のバージョンでは、このパラメータは必須でした。
 ftp_nb_getmode パラメータはオプションになりました。 これより前のバージョンでは、このパラメータは必須でした。
 ftp_nb_putmode パラメータはオプションになりました。 これより前のバージョンでは、このパラメータは必須でした。
 ftp_putmode パラメータはオプションになりました。 これより前のバージョンでは、このパラメータは必須でした。
 getallheadersFPM SAPI でもこの関数が使えるようになりました。
 is_countableis_countable が追加されました。
 json_decodeoptions パラメータに JSON_THROW_ON_ERROR が追加されました。
 json_encodeoptions パラメータに JSON_THROW_ON_ERROR が追加されました。
 mb_convert_casemode に MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE, MB_CASE_FOLD_SIMPLE のサポートが追加されました。
 password_hashPASSWORD_ARGON2ID を使った、 Argon2id パスワードのサポートが追加されました。
 preg_quote# 文字がクォートされるようになりました。
 session_get_cookie_params返される配列に、"samesite" エントリが追加されました。
 session_set_cookie_params連想配列 options をサポートする、 別のシグナチャが追加されました。 このシグナチャは、SameSite クッキー属性の設定もサポートします。
 setcookieoptions 配列をサポートする追加のシグナチャが追加されました。 このシグナチャは、SameSite クッキー属性の設定もサポートしています。
 setrawcookieoptions 配列をサポートする追加のシグナチャが追加されました。 このシグナチャは、SameSite クッキー属性の設定もサポートしています。
 unlinkWindows で、使用中のハンドルを使ってファイルを unlink できるようになりました。 これより前のバージョンでは、失敗していました。 但し、unlink されたファイルを再生成できるようになっているわけでは未だありません。 そうするには、全てのハンドルが閉じられている必要があります。
 var_exportstdClass オブジェクトは、 存在しないメソッド stdClass::__setState を使わず、 配列をオブジェクトにキャストした形 ((object) array( ... )) でエクスポートされるようになりました。 この変更によって、stdClass がエクスポート可能になり、 このバージョンより前の PHP でもエクスポートした結果が動くようになりました。
 xml_set_external_entity_ref_handler拡張モジュールが libxml を使ってビルドされた場合には、コールバック handler の戻り値が無視されることはなくなりました。 このバージョン以前はコールバックの戻り値が無視され、パースが止まりませんでした。
 xml_set_external_entity_ref_handler拡張機能が libxml を使ってビルドされていた場合、 handler の戻り値は無視されることはなくなりました。 これより前のバージョンでは、戻り値が無視されていた上、パースが止まりませんでした。
7.3ldap_addserverctrls のサポートが追加されました。
 ldap_compareserverctrls のサポートが追加されました。
 ldap_deleteserverctrls のサポートが追加されました。
 ldap_exopserverctrls のサポートが追加されました。
 ldap_exop_passwdserverctrls のサポートが追加されました。
 ldap_listserverctrls のサポートが追加されました。
 ldap_mod_addserverctrls のサポートが追加されました。
 ldap_mod_delserverctrls のサポートが追加されました。
 ldap_mod_replaceserverctrls のサポートが追加されました。
 ldap_modify_batchserverctrls のサポートが追加されました。
 ldap_parse_resultserverctrls のサポートが追加されました。
 ldap_readserverctrls のサポートが追加されました。
 ldap_renameserverctrls のサポートが追加されました。
 ldap_searchserverctrls のサポートが追加されました。
7.2.19, 7.3.6SplFileObject::__toStringSplFileObject::current のエイリアスから、 SplFileObject::fgets のエイリアスに変わりました。
7.2.18, 7.3.5substr_compareoffset の値は、 main_str の長さと等しくても問題なくなりました。
7.2.0array_uniquesort_flags が SORT_STRING の場合、 新しい配列が生成され、ユニークな要素が追加されるようになりました。 これによって、異なった数値のインデックスが振られる可能性があります。 これより前のバージョンでは、 array がコピーされ、 (配列を後にパックせずに) ユニークでない値が削除されていました。
 assertassertion に string を使うことは 推奨されなくなりました。 assert.active と zend.assertions が 両方 1 に設定されると、 E_DEPRECATED レベルの警告が発生するようになりました。
 bcmoddividend と divisor は 整数に切り詰められることがなくなりました。 よって、bcmod の振る舞いは % 演算子ではなく、 fmod に従うことになります。
 bcmodscale パラメータが追加されました。
 countcount 関数は、 array_or_countable パラメータに、 不正な Countable 型を渡した場合に 警告を発生させるようになりました。
 date_parse返される配列の zone 要素が、 分ではなく秒を表すようになり、 符号が逆になりました。 たとえば、 -120 は 7200 を表すようになります。
 date_parse_from_format返される配列の zone 要素が、 分ではなく秒を表すようになり、 符号が逆になりました。 たとえば、 -120 は 7200 を表すようになります。
 exif_read_data以下の EXIF フォーマットのサポートが追加されました: Samsung DJI Panasonic Sony Pentax Minolta Sigma/Foveon AGFA Kyocera Ricoh Epson
 exif_read_datafilename パラメータは stream にリネームされ、 ローカルファイルとストリームリソースを両方サポートするようになりました。
 exif_thumbnailfilename パラメータは stream にリネームされ、 ローカルファイルとストリームリソースを両方サポートするようになりました。
 get_classNULL は、object のデフォルトのパラメータとして 扱われなくなり、 正しい入力ではなくなりました。
 gettypeクローズ済みのリソースを渡すと 'resource (closed)'を返すようになりました。 以前は 'unknown type'を返していました。
 hash_copyリソースのかわりに、HashContext を受け入れ、返すようになりました。
 hash_finalリソースの代わりに、HashContext を受け入れるようになりました。
 hash_hmac暗号に適さないハッシュ関数 (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) は使えなくなりました。
 hash_hmac_file暗号に適さないハッシュ関数 (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) は使えなくなりました。
 hash_init暗号に適さないハッシュ関数 (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) は使えなくなりました。
 hash_initリソースの代わりに HashContext を返すようになりました。
 hash_pbkdf2暗号の使用に適さないハッシュ関数 (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) は使えなくなりました。
 hash_updateリソースの代わりに HashContext を受け入れるようになりました。
 hash_update_fileリソースの代わりに HashContext を受け入れるようになりました。
 hash_update_streamリソースの代わりに HashContext を受け入れるようになりました。
 idn_to_asciiINTL_IDNA_VARIANT_2003 は非推奨です。代わりに INTL_IDNA_VARIANT_UTS46 を使用してください。
 idn_to_utf8INTL_IDNA_VARIANT_2003 は非推奨です。代わりに INTL_IDNA_VARIANT_UTS46 を使用してください。
 imageantialiasimageantialias が常に使えるようになりました。 これまでのバージョンでは、PHP にバンドルされている GD ライブラリでコンパイルした場合にしか使えませんでした。
 imagegdimagegd が truecolor 画像を出力できるようになりました。 これまでのバージョンでは、暗黙のうちにパレット画像に変換されていました。
 imagelayereffectIMG_EFFECT_MULTIPLY が追加されました (システムの libgd が 2.1.1 以降であるか、バンドルされている libgd を使う必要があります)。
 imagetypesIMG_BMP が追加されました。
 is_objectクラス定義が存在せず (__PHP_Incomplete_Class クラス)、 かつシリアライズ化されていないオブジェクトに対して、 is_object 関数は TRUE を返すようになりました。 これより前のバージョンでは、FALSE を返していました。
 json_decodeoptions パラメータに JSON_INVALID_UTF8_IGNORE および JSON_INVALID_UTF8_SUBSTITUTE が追加されました。
 json_encodeoptions パラメータに JSON_INVALID_UTF8_IGNORE と JSON_INVALID_UTF8_SUBSTITUTE が追加されました。
 mailadditional_headers パラメータは、 array も受け入れるようになりました。
 mb_check_encodingこの関数は、var に array を受け入れるようになりました。 このバージョンより前では、string のみがサポートされていました。
 mb_convert_encodingこの関数は、 val に array を受け入れるようになりました。 これより前のバージョンでは、 string のみがサポートされていました。
 mb_send_mailadditional_headers パラメータは、 array も受け付けるようになりました。
 mt_randmt_rand 関数の モジュロバイアスに関するバグが 修正されました。 これは、特定のシードを用いて生成したシーケンスは、64bit マシン上での PHP 7.1 と出力が異なる可能性があることを意味します。
 number_formatnumber_format は、 -0 を返さないように変更されました。 これより前のバージョンでは、 number が -0.01 のようなケースで -0 が返される場合がありました。
 openssl_pkcs7_verifyp7bfilename パラメータが追加されました。
 packfloat と double 型は、ビッグエンディアンとリトルエンディアンを両方サポートしました。
 parse_strparse_str関数を 第二引数を指定せずに使うと E_DEPRECATED レベルの警告が発生するようになりました。
 password_hashPASSWORD_ARGON2I を使った、 Argon2i パスワードのサポートが追加されました。
 preg_match$flags パラメータが PREG_UNMATCHED_AS_NULL をサポートしました。
 preg_match_all$flags パラメータが PREG_UNMATCHED_AS_NULL をサポートしました。
 proc_niceこの関数は、Windows で利用できるようになりました。
 randrand 関数のモジュロバイアスに関するバグが 修正されました。 これは、特定のシードから生成されるシーケンスが 64bit PHP 7.1 のそれとは異なる可能性があるということです。
 read_exif_dataこの関数エイリアスは非推奨になりました。
 session_abortこの関数の返り値の型は bool になりました。 以前は void でした。
 session_module_nameモジュール名に "user" を設定することは、 明示的に禁止されるようになりました。 これより前のバージョンでは、 "user" を設定しても静かに無視されていました。
 session_namesession_name 関数は、 セッションの状態をチェックするようになりました。 これより前のバージョンでは、 クッキー の状態をチェックするだけでした。 そのため、古い session_name 関数は session_start 関数の後に session_name 関数をを呼び出すことを許して しまっており、それが PHP のクラッシュや不具合を起こす可能性がありました。
 session_resetこの関数の返り値の型は bool になりました。 以前は void でした。
 session_set_cookie_params成功した場合に TRUE を、失敗した場合に FALSE を返します。 以前はこの関数は void を返していました。
 session_unsetこの関数の返り値の型は bool になりました。 以前は void でした。
 session_write_closeこの関数の返り値の型は bool になりました。 以前は void でした。
 set_error_handlererrcontext が非推奨になりました。 このパラメーターを使うと、 E_DEPRECATED レベルの警告が発生するようになりました。
 unpackfloat および double 型は、 ビッグエンディアンとリトルエンディアンの両方をサポートします。
 utf8_decodeこの関数は PHP のコアに移動しました。 よって、XML拡張機能でこの関数のために必要とされていた条件は撤廃されました。
 utf8_encodeこの関数は PHP のコアに移動しました。 よって、XML拡張機能でこの関数のために必要とされていた条件は撤廃されました。
 PDOStatement::debugDumpParamsPDOStatement::debugDumpParams は、データベースに送られた 完全な、(プレースホルダーをバインドされた値で置き換えた) 生のSQLクエリを返すようになりました。 これは、プリペアドステートメントがエミュレートされていた場合のみ利用できることに注意してください。
 SQLite3::openBlobflags が追加されました。 BLOB に書き込むことができます。これより前のバージョンでは、読み取りのみがサポートされていました。
7.1.24, 7.2.12, 7.3.0xml_parser_get_optionoptions が 新たに XML_OPTION_SKIP_TAGSTART と XML_OPTION_SKIP_WHITE をサポートしました。
7.1.5IntlDateFormatter::formatvalue パラメータに 一般的な DateTimeInterface オブジェクトのサポートが追加されました。 これより前のバージョンでは、DateTime オブジェクトのみがサポートされていました。
7.1.4PDO::sqliteCreateFunctionflags パラメータが追加されました。
 SQLite3::createFunctionflags パラメータが追加されました。
7.1.0DateInterval::formatフォーマット文字 F と f が追加されました。
 DateTime::setTimemicroseconds パラメータが追加されました。
 array_rand内部的なランダム化アルゴリズムは、 libc の rand 関数ではなく、 メルセンヌツイスタ 乱数生成器を使うように 変更されました
 curl_multi_setoptCURLMOPT_PUSHFUNCTION が追加されました。
 exif_imagetypeWebP をサポートしました
 file_get_contents負の offset をサポートするようになりました。
 get_headerscontext パラメーターが追加されました。
 getenvvarname は、すべての環境変数の連想配列を取得するために 省略することができるようになりました。
 getimagesizeWebP に対応しました。
 getoptoptind パラメータが追加されました。
 grapheme_extract負の start をサポートするようになりました。
 grapheme_stripos負の offset をサポートするようになりました。
 grapheme_strpos負の offset をサポートするようになりました。
 hash_algossha512/224, sha512/256, sha3-224, sha3-256, sha3-384 および sha3-512 のサポートを追加しました。
 iconv_strpos負の offset をサポートするようになりました。
 json_decode空の JSONキー ("") は、 _empty_ というキーではなく、 空のオブジェクトプロパティにエンコードされるようになりました。
 json_encodeoptions パラメータに JSON_UNESCAPED_LINE_TERMINATORS が追加されました。
 json_encodedouble 値をエンコードする際に、 precision ではなく serialize_precision を使うようになりました。
 listキーを list 関数で指定できるようになりました。 これによって、キーが数値でなかったり、連続していなかったりした場合に配列の構造を変えることができるようになります。
 long2ipproper_address の型が string から integer に変更されました。
 mb_eregマッチしなかった場合、mb_ereg は regs を空の配列とするようになりました。 以前は regs を変更しませんでした。
 mb_ereg_replacee 修飾子が非推奨になりました。
 mb_ereg_search_setpos負の position をサポートするようになりました。
 mb_eregimb_eregi 関数は、何もマッチしなかった場合に regs に空の array を設定するようになりました。 これより前のバージョンでは、何もマッチしなかった場合に regs を変更しませんでした。
 mb_eregi_replacee 修飾子が非推奨になりました。
 mb_strimwidth負の start と width をサポートするようになりました。
 mb_stripos負の offset をサポートするようになりました。
 mb_strpos負の offset をサポートするようになりました。
 mt_randmt_rand は、固定の、正しいバージョンのメルセンヌツイスタ の アルゴリズム を使うように 更新されました。 古い振る舞いに戻すには、 mt_srand 関数の第二引数に MT_RAND_PHP を指定して使ってください。
 mt_randrand は、mt_rand の エイリアスになりました。
 mt_srandmt_rand は、正しく修正されたメルセンヌ・ツイスター・アルゴリズムを使用するように 更新されました。 以前のアルゴリズムに戻すには、mt_srand に MT_RAND_PHP を 第 2 引数として指定してください。
 mt_srandsrand は、mt_srand の エイリアスになりました。
 openssl_csr_newconfigargs が、新たに curve_name をサポートしました。
 openssl_decrypttag および aad パラメータが追加されました。
 openssl_encrypttag、aad および tag_length パラメータが追加されました。
 openssl_pkey_newEC キーを作成できるようにするため、 configargs に curve_name が追加されました。
 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. で定義したリライト変数だけを削除するようになります。
 pcntl_signalPHP 7.1.0以降、ハンドラコールバックは特定のシグナルの signinfo を含む 2 番目の引数を与えられます。 このデータは、OS が signinfo_t 構造体を持つ場合のみ提供されます。 OS が siginfo_t を実装していない場合は NULL が提供されます。
 pcntl_signal_get_handlerpcntl_signal_get_handler 関数が追加されました。
 pg_fetch_allresult_type パラメータが追加されました。
 pg_last_noticeoption パラメータが追加されました。
 pg_selectresult_type パラメータが追加されました。
 randrand は、mt_rand の エイリアスになりました。
 session_startセッションを開始できなかった場合、 session_start は、FALSE を返し、 $_SESSION を初期化しないようになりました。
 shuffle内部的なランダム化のアルゴリズムが、 libc の rand 関数ではなく、 メルセンヌツイスタ 乱数生成器 を使うように 変更されました。
 srandsrand は、 mt_srand の エイリアスになりました。
 str_shuffle内部的なランダム化アルゴリズムは、 libc の rand 関数ではなく、 メルセンヌツイスタ 乱数生成器を使うように 変更されました
 stripos負の offset をサポートするようになりました。
 strpos負の offset をサポートするようになりました。
 substr_count負の offset と length をサポートするようになりました。 length は、0 を指定しても問題ありません。
 unpackオプションの offset が追加されました。
 unserializeoptions の allowed_classes 要素は、 型を厳密に調べるようになりました。 つまり、array または boolean 以外の型が与えられると、 unserialize 関数は FALSE を返し、 E_WARNING レベルの警告を発生させます。
7.1DateTime::__constructマイクロ秒が '00000' ではなく、実際の値で埋められるようになりました。
7.0.16, 7.1.2dns_get_recordCAA レコード型のサポートが追加されました。
 fopen'e' が追加されました。
7.0.15, 7.1.1get_defined_functionsexclude_disabled パラメータが追加されました。
7.0.15,7.1.1pack"e", "E", "g" および "G" コードが、float と double のバイトオーダーをサポートするために追加されました。
7.0.11iconv_substrstr が offset の文字数に等しい場合、 空文字列が返されます。 これより前のバージョンでは、この場合 FALSE が返されていました。
7.0.10SQLite3::__constructfilename は、空文字列を指定できるようになりました。 この場合、プライベート、かつ一時的なデータベースがディスク上に作成されます。
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 以降でサポートされていたもの) のいずれかであると解釈されるようになりました。
 curl_setoptCURLOPT_SAFE_UPLOAD オプションを無効にするサポートが削除されました。 全ての curl によるファイルアップロードは、 CURLFile を使わなければなりません。
 currentarray は常に値で渡されるようになりました。 このバージョンより前は、可能な場合は参照で、それ以外の場合は値で 渡されていました。
 definearray が使えるようになりました。
 dirnameオプションのパラメータ levels が追加されました。
 dldl が PHP-FPM で無効になりました。
 getrusageこの関数は、Windows でサポートされるようになりました。
 gmmktimeis_dst パラメータが削除されました。
 imagepsbboxPHP から T1Lib サポートが削除されたため、この関数は削除されました。
 imagepsencodefontPHP から T1Lib サポートが削除されたため、この関数は削除されました。
 imagepsextendfontPHP から T1Lib サポートが削除されたため、この関数は削除されました。
 imagepsfreefontPHP から T1Lib サポートが削除されたため、この関数は削除されました。
 imagepsloadfontPHP から T1Lib サポートが削除されたため、この関数は削除されました。
 imagepsslantfontPHP から T1Lib サポートが削除されたため、この関数は削除されました。
 imagepstextPHP から T1Lib サポートが削除されたため、この関数は削除されました。
 is_numeric十六進表記(0xf4c3b00c など) の文字列は数値形式の文字列とみなされなくなりました。 つまり、is_numeric は FALSE を返すようになりました。
 json_decode空の PHP文字列 または、文字列にキャスト後の値が空文字列になる値 (NULL, FALSE) については、 JSON の syntax error が発生するようになりました。
 json_decodeRFC 7159 と非互換の数値フォーマットは拒むようになりました。 トップレベルでは (07, 0xff, .1, -.1) のような形式を拒み、 全レベルで ([1.], [1.e1]) のような形式を拒否します。
 keyarray は常に値で渡されるようになりました。 このバージョンより前は、可能な場合は参照で、それ以外の場合は値で 渡されていました。
 list代入操作が行われる順番が変わりました 。
 listlist の式をまったくの空にすることはできなくなりました 。
 list文字列は扱えなくなりました 。
 mcrypt_generic_endmcrypt_generic_end 関数が削除されました。
 mktimeis_dst パラメータが削除されました。
 ob_startob_start を出力バッファコールバックの内部で使う場合、 この関数は E_ERROR の代わりに E_RECOVERABLE_ERROR を発行して、カスタムエラーハンドラで対応できるようにします。
 openssl_openiv が追加されました。
 openssl_sealiv が追加されました。
 parse_ini_fileハッシュマーク (#) をコメントとみなさないようになりました。
 preg_replace/e 修飾子をサポートしなくなりました。かわりに preg_replace_callback を使いましょう。
 proc_openother_options パラメータに オプション blocking_pipes が追加されました。
 session_regenerate_idsession_regenerate_id 関数は、 終了する前に古いセッションデータを保存するようになりました。
 session_set_save_handlerオプションの validate_sid および update_timestamp パラメータが追加されました。
 session_startoptions パラメータが追加されました。
 set_exception_handlerexception_handler に渡すパラメータの型が、 Exception から Throwable に変わりました。
 setlocalecategory パラメータが文字列を受け付けなくなりました。 このバージョン以降では、定数 LC_* だけしか使えません。
 shmop_closeThe type of shmid has been changed from int to resource.
 shmop_deleteThe type of shmid has been changed from int to resource.
 shmop_openshmop_open 関数の戻り値の型が、 int から resource に変わりました。
 shmop_readThe type of shmid has been changed from int to resource.
 shmop_sizeThe type of shmid has been changed from int to resource.
 shmop_writeThe type of shmid has been changed from int to resource.
 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_encodeoptions パラメータに 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 になりました。
 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_ivMCRYPT_DEV_URANDOM is now the default value of source.
 mcrypt_decryptInvalid key and iv sizes are no longer accepted. mcrypt_decrypt will now throw a warning and return FALSE if the inputs are invalid. Previously keys and IVs were padded with '\0' bytes to the next valid size.
 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_insertPGSQL_DML_STRING が渡されない限り、 この関数は、成功時に TRUE の代わりに接続リソースを返します。
 pg_lo_seekPostgreSQL 9.3 以降での 64 ビットラージオブジェクトに対応しました。 これを使うには、クライアントとサーバーがいずれも PostgreSQL 9.3 以降であることと、 PHP が 64 ビット版であることが必要です。
 pg_lo_tellPostgreSQL 9.3 以降での 64 ビットラージオブジェクトに対応しました。 これを使うには、クライアントとサーバーがいずれも PostgreSQL 9.3 以降であることと、 PHP が 64 ビット版であることが必要です。
 pg_lo_truncatetruncate 関数が追加されました。 これは PostgreSQL 9.3 の 64bit ラージオブジェクトをサポートします。 64bit ラージオブジェクトを使うには、 クライアントとサーバが両方 PostgreSQL 9.3 をサポートし、 PHP は64bitビルドでなければなりません。
 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 がオプションになりました。
 unserializeシリアライズされたデータを改変して C: を O: に置き換え、オブジェクトのインスタンス化の際にコンストラクタを呼ばないようにしたものは、 処理に失敗するようになりました。
 ReflectionClass::newInstanceWithoutConstructorすべての内部クラスをインスタンス化できるようになりました。ただし final 宣言されたクラスは例外です。
 XMLReader::getAttributeNoXMLReader::getAttributeNo は、 属性が存在しない場合に NULL を返すようになりました。
 XMLReader::getAttributeNsXMLReader::getAttributeNS は、 属性が存在しない場合に NULL を返すようになりました。
5.5.38, 5.6.24, 7.0.9getenvlocal_only パラメーターが追加されました。
5.5.22, 5.6.6flockwouldblock パラメータを、Windows でもサポートするようになりました。
 SplFileObject::flockWindows 上で wouldblock パラメータがサポートされました。
5.5.21, 5.6.5SplFileObject::fputcsvescape パラメータが追加されました。
5.5.21cryptsalt として "*0" が渡されたときに、 他の crypt の実装にあわせて "*1" を返すようになりました。 これより前のバージョンの PHP では、間違った DES ハッシュを返していました。
5.5.19/5.6.3imagescalenew_height が負の数だったり省略されていたりした場合の、高さの計算の問題が修正されました。 これより前のバージョンでは、アスペクト比を正確に保つことができませんでした。
5.5.19, 5.6.3DateTimeZone::getOffsetdatetime パラメータの型が DateTimeInterface に変わりました。 これより前のバージョンでは、DateTime でした。
5.5.11substr_comparelength を 0 にもできるようになりました。
5.5.10DateTimeZone::__constructtimezone パラメータは、オフセット値を受け付けます。
5.5.8DatePeriod::__constructend の型が DateTimeInterface に変わりました。 これより前のバージョンでは 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 の型が DateTimeInterface に変わりました。 これより前のバージョンでは、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失敗した場合の戻り値が 文字列 null から FALSE に変更されました。
 json_encodeパラメータ depth が追加されました。
 json_encodeoptions パラメータに JSON_PARTIAL_OUTPUT_ON_ERROR が追加されました。
 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 バイトを取り除きます。
 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.42, 5.5.27mailヘッダインジェクション攻撃に対する防御が additional_headers パラメータに追加されました。 これは、複数の連続した改行文字がもはや許されないことを意味します。
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 をサポートするようになりました (ICU ≥ 4.6 が必須)。
 idn_to_utf8パラメータ variant と idna_info が追加され、UTS #46 をサポートするようになりました (ICU ≥ 4.6 が必須)。
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_tableencoding パラメータのデフォルトが UTF-8 に変わりました。
 get_html_translation_table定数 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。
 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 に渡して この引数をスキップすることはできなくなりました。
 imagejpegストリームリソースを to に渡せるようになりました。
 imagepngストリームリソースを to に渡せるようになりました。
 imagewbmpストリームリソースを to に渡せるようになりました。
 isset文字列のオフセットに非数値を指定した場合は FALSE を返すようになりました。
 json_decodeoptions パラメータが追加されました。
 json_encodeoptions パラメータに JSON_PRETTY_PRINT、 JSON_UNESCAPED_SLASHES および JSON_UNESCAPED_UNICODE が追加されました。
 mb_decode_numericentityis_hex パラメータが追加されました。
 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 が使えるようになりました。
 PDOStatement::getColumnMetaPDO_DBLIB ドライバのサポートが追加されました
 Phar::setStublen パラメータが追加されました。
 PharData::setStublen パラメータが追加されました。
 SimpleXMLElement::getDocNamespacesfrom_root パラメータが追加されました。
 SoapClient::SoapClientkeep_alive オプションが追加されました。
5.4grapheme_substrlength に正の値を指定して、 引数の文字列がその長さより短かった場合に、start に基づいて残りのすべての文字列を返すようになりました。 以前のバージョンでは FALSE を返していました。
5.3.19imagecreatefromxpmimagecreatefromxpm が Windows でも使えるようになりました。
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 に変わりました。
 imap_fetch_overviewudate プロパティが追加されました。
 json_encodeoptions パラメータに 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 が追加されました。
 SplFileObject::flockファイルのリソースハンドルが閉じられたときに、自動でアンロックする機能は削除されました。 アンロックは常に手動で行わなければならなくなりました。
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参照渡しを期待している関数が呼ばれた場合、 E_WARNING が発生するようになりました。
 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この関数はパラメータリスト内で使用できるようになりました。
 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 を返していました。
 get_resource_typehandle が resource でなかった場合、 この関数は NULL を返すようになりました。 これより前のバージョンでは、FALSE を返していました。
 getimagesizeアイコンに対応しました。
 getmxrrこの関数は、Windows プラットフォームでも動作するようになりました。
 getoptオプションの値 ("::" で指定します) に対応しました。
 getoptこの関数はシステムに依存しなくなり、今では Windows でも動作するようになりました。
 getoptパラメータ longopts がすべてのプラットフォームで使えるようになりました。
 getopt"=" を引数/値の区切り文字として使用できるようになりました。
 hash_algosmd2、ripemd256、ripemd320、salsa10、salsa20、snefru256 および sha224 のサポートを追加しました。
 htmlentities定数 ENT_IGNORE が追加されました。
 htmlspecialchars定数 ENT_IGNORE が追加されました。
 imagecolorclosesthwbこの関数は、Windows でも使用可能になりました。
 imagefilterモザイク化のサポート (IMG_FILTER_PIXELATE) が追加されました。
 inet_ntopこの関数は Windows プラットフォームでも使用可能となりました。
 inet_ptonこの関数は Windows プラットフォームでも使用可能となりました。
 ini_get指定したオプションが存在しない場合に、空文字列ではなく FALSE を返すようになりました。
 ini_get_alldetails が追加されました。
 is_aこの関数は非推奨ではなくなりました。そのため E_STRICT も発生しなくなりました。
 json_decodeオプションの depth が追加されました。デフォルトの再帰の深さが 128 から 512 に増えました。
 json_encodeoptions パラメータが追加されました。
 json_encodeoptions パラメータに JSON_FORCE_OBJECT, JSON_HEX_AMP, JSON_HEX_APOS, JSON_HEX_QUOT, JSON_HEX_TAG が追加されました。
 linkこの関数は、Windows プラットフォーム (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。
 linkinfoこの関数は、Windows プラットフォーム (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。
 log1pこの関数はすべてのプラットフォームで使用できるようになりました。
 mb_get_infoエントリ "http_output_conv_mimetypes" が使用できるようになりました。
 mcrypt_create_ivIt is no longer required to call srand first. This is now done automatically.
 mcrypt_create_ivMCRYPT_DEV_RANDOM and MCRYPT_DEV_URANDOM became available on Windows platforms.
 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_openmethod が追加されました。
 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_connectThe new parameter was added.
 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非同期クエリ機能が追加されました。
 PDO::__constructPDO クラスを継承し、 __call マジックメソッドを実装したクラスは、 メソッド名の大文字小文字を宣言時の状態で受け取るようになりました。 これより前のバージョンでは、常に小文字で受け取っていました。
 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 の登録を解除する必要がありました。
 date_sun_infolatitude と longitude の順番が逆になりました。
 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 の メルセンヌ・ツイスター実装は、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タイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
 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_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/..') のようなラッパーで利用可能であることを意味します。
 mktimeis_dst パラメータは廃止されました。 エラー時には -1 ではなく FALSE を返すようになりました。 年月日がすべてゼロとすることが可能になりました。
 mktime引数なしでコールすると、mktime は E_STRICT notice を発行するようになりました。かわりに time 関数を使用しましょう。
 mktimeタイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
 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.0curl_setoptCURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE および CURLOPT_HTTP200ALIASES が追加されました。
 is_aこの関数は非推奨となり、かわりに instanceof 演算子の使用が推奨されるようになりました。この関数をコールすると E_STRICT が発生します。
 strtotimeマイクロ秒も受け付けるようになりましたが、指定してもそれは無視されます。
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top