# 変更履歴

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

Version | Function | Description
--- | --- | ---
PHP 7.1.4 | PDO::sqliteCreateFunction | flags が追加されました。
| SQLite3::createFunction | flags が追加されました。
PHP 7.0.15, PHP 7.1.1 | get_defined_functions | exclude_disabled パラメータが追加されました。
7.3.0 | array_push | この関数は、1 つのパラメータでのみ呼び出すことができるようになりました。 前は、少なくとも 2 つのパラメータが必要でした。
| array_unshift | この関数は、1 つのパラメータでのみ呼び出すことができるようになりました。 前は、少なくとも 2 つのパラメータが必要でした。
| is_countable | is_countable が追加されました。
7.3 | ldap_exop | Support for serverctrls added
| ldap_exop_passwd | Support for serverctrls added
| ldap_modify_batch | Support for serverctrls added
7.2.0 | assert | Usage of a string as the assertion became deprecated. It now emits an E_DEPRECATED notice when both assert.active and zend.assertions are set to 1.
| count | count will now yield a warning on invalid countable types passed to the array_or_countable parameter.
| get_class | NULL was removed as the default value for object, and is no longer a valid input.
| gettype | クローズ済みのリソースを渡すと 'resource (closed)'を返すようになりました。 以前は 'unknown type'を返していました。
| hash_hmac | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
| hash_hmac_file | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
| hash_init | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
| hash_pbkdf2 | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
| idn_to_ascii | INTL_IDNA_VARIANT_2003 は非推奨です。代わりに INTL_IDNA_VARIANT_UTS46 を使用してください。
| idn_to_utf8 | INTL_IDNA_VARIANT_2003 は非推奨です。代わりに INTL_IDNA_VARIANT_UTS46 を使用してください。
| imageantialias | imageantialias が常に使えるようになりました。 これまでのバージョンでは、PHP にバンドルされている GD ライブラリでコンパイルした場合にしか使えませんでした。
| imagegd | imagegd が truecolor 画像を出力できるようになりました。 これまでのバージョンでは、暗黙のうちにパレット画像に変換されていました。
| imagelayereffect | IMG_EFFECT_MULTIPLY が追加されました (システムの libgd が 2.1.1 以降であるか、バンドルされている libgd を使う必要があります)。
| imagetypes | IMG_BMP が追加されました。
| is_object | is_object now returns TRUE for unserialized objects without a class definition (class of __PHP_Incomplete_Class). Previously FALSE was returned.
| mb_send_mail | additional_headers パラメータは、 array も受け付けるようになりました。
| number_format | number_format was changed to not being able to return -0, previously -0 could be returned for cases like where number would be -0.01.
| openssl_pkcs7_verify | p7bfilename パラメータが追加されました。
| parse_str | Usage of parse_str without a second parameter now emits an E_DEPRECATED notice.
| proc_nice | この関数は、現在 Windows で利用可能です。
| read_exif_data | This function alias was deprecated.
| session_abort | この関数の返り値の型は bool になりました。 以前は void でした。
| session_reset | この関数の返り値の型は bool になりました。 以前は void でした。
| session_set_cookie_params | 成功した場合に TRUE を、失敗した場合に FALSE を返します。 以前はこの関数は void を返していました。
| session_unset | この関数の返り値の型は bool になりました。 以前は void でした。
| session_write_close | この関数の返り値の型は bool になりました。 以前は void でした。
| set_error_handler | errcontext became deprecated. Usage of this parameter now emits an E_DEPRECATED notice.
| SQLite3::openBlob | The flags parameter has been added, allowing to write BLOBs; formerly only reading was supported.
7.1.0 | array_rand | The internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function.
| curl_multi_setopt | CURLMOPT_PUSHFUNCTION が追加されました。
| exif_imagetype | WebP をサポートしました
| file_get_contents | 負の offset をサポートするようになりました。
| getenv | varname は、すべての環境変数の連想配列を取得するために 省略することができるようになりました。
| getimagesize | WebP に対応しました。
| getopt | optind パラメータが追加されました。
| grapheme_extract | 負の start をサポートするようになりました。
| grapheme_stripos | 負の offset をサポートするようになりました。
| grapheme_strpos | 負の offset をサポートするようになりました。
| iconv_strpos | 負の offset をサポートするようになりました。
| json_decode | An empty JSON key ("") can be encoded to the empty object property instead of using a key with value _empty_.
| json_encode | double 値をエンコードする際に、 precision ではなく serialize_precision を使うようになりました。
| mb_ereg | マッチしなかった場合、mb_ereg は regs を空の配列とするようになりました。 以前は regs を変更しませんでした。
| mb_ereg_replace | e 修飾子が非推奨になりました。
| mb_ereg_search_setpos | 負の position をサポートするようになりました。
| mb_eregi | mb_eregi will now set regs to an empty array, if nothing matched. Formerly, regs was not modified in that case.
| mb_eregi_replace | e 修飾子が非推奨になりました。
| mb_strimwidth | 負の start と width をサポートするようになりました。
| mb_stripos | 負の offset をサポートするようになりました。
| mb_strpos | 負の offset をサポートするようになりました。
| mt_rand | mt_randhas been updated to use the fixed, correct, version of the メルセンヌ・ツイスター algorithm. To fall back to the old behaviour, use mt_srand with MT_RAND_PHP as the second paramter.
| mt_rand | rand は、mt_rand のエイリアスになりました。
| mt_srand | srand は、mt_srand のエイリアスになりました。
| mt_srand | mt_randhas been updated to use the fixed, correct, version of メルセンヌ・ツイスター・アルゴリズム. To fall back to the old behaviour, use mt_srand with MT_RAND_PHP as the second paramter.
| openssl_decrypt | tag および aad パラメータが追加されました。
| openssl_encrypt | tag、aad および tag_length パラメータが追加されました。
| output_add_rewrite_var | PHP 7.1.0 より前のバージョンでは、output_add_rewrite_var で設定したリライト変数は、透過的セッションID出力バッファと同じセッションモジュールを使っていました。 PHP 7.1.0 以降では、専用の出力バッファを用いるようになりました。 url_rewriter.tags はただ関数の出力にだけ使われるようになり、 url_rewriter.hosts が追加されました。
| output_reset_rewrite_vars | PHP 7.1.0 より前のバージョンでは、output_add_rewrite_var で設定したリライト変数は、透過的セッションID出力バッファと同じセッションモジュールを使っていました。 PHP 7.1.0 以降では、専用の出力バッファを用いるようになり、 output_reset_rewrite_vars は output_add_rewrite_var. で定義したリライト変数だけを削除するようになります。
| pcntl_signal | As of PHP 7.1.0 the handler callback is given a second argument containing the signinfo of the specific signal. This data is only supplied if the operating system has the signinfo_t structure. If the OS does not implement siginfo_t NULL is supplied.
| pcntl_signal_get_handler | pcntl_signal_get_handler has been added.
| pg_fetch_all | result_type パラメータが追加されました。
| pg_last_notice | option パラメータが追加されました。
| pg_select | result_type パラメータが追加されました。
| rand | rand は、mt_rand のエイリアスになりました。
| session_start | セッションを開始できなかった場合、 session_start は、FALSE を返し、 $_SESSION を初期化しないようになりました。
| shuffle | The internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function.
| srand | srand は、mt_srand のエイリアスになりました。
| str_shuffle | The internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function.
| stripos | 負の offset をサポートするようになりました。
| strpos | 負の offset をサポートするようになりました。
| substr_count | 負の offset と length をサポートするようになりました。
| unserialize | The allowed_classes element of options) is now strictly typed, i.e. if anything other than an array or a boolean is given, unserialize returns FALSE and issues an E_WARNING.
7.0.16, 7.1.2 | dns_get_record | CAA レコード型のサポートが追加されました。
| fopen | 'e' が追加されました。
7.0.11 | iconv_substr | If str is equal to offset characters long, an empty string will be returned. Prior to this version, FALSE was returned in this case.
7.0.10 | SQLite3::__construct | The filename can now be empty to use a private, temporary on-disk database.
7.0.7 | curl_multi_setopt | CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE、 CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE、 CURLMOPT_MAX_HOST_CONNECTIONS、 CURLMOPT_MAX_PIPELINE_LENGTH、 CURLMOPT_MAX_TOTAL_CONNECTIONS が追加されました。
| curl_setopt | CURL_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.0 | array_column | input にオブジェクトの配列を渡せるようになりました。
| assert | assert が言語構造となり、関数ではなくなりました。 assertion に式を指定できるようになりました。 第二パラメータは、 exception (Throwable オブジェクトを渡した場合) あるいは description (PHP 5.4.8 以降でサポートされていたもの) のいずれかであると解釈されるようになりました。
| current | array は常に値で渡されるようになりました。 このバージョンより前は、可能な場合は参照で、それ以外の場合は値で 渡されていました。
| define | array が使えるようになりました。
| dirname | オプションのパラメータ levels が追加されました。
| dl | dl が PHP-FPM で無効になりました。
| getrusage | この関数は、Windows でサポートされるようになりました。
| gmmktime | is_dst パラメータが削除されました。
| imagepsbbox | PHP から T1Lib サポートが削除されたため、この関数は削除されました。
| imagepsencodefont | PHP から T1Lib サポートが削除されたため、この関数は削除されました。
| imagepsextendfont | PHP から T1Lib サポートが削除されたため、この関数は削除されました。
| imagepsfreefont | PHP から T1Lib サポートが削除されたため、この関数は削除されました。
| imagepsloadfont | PHP から T1Lib サポートが削除されたため、この関数は削除されました。
| imagepsslantfont | PHP から T1Lib サポートが削除されたため、この関数は削除されました。
| imagepstext | PHP から T1Lib サポートが削除されたため、この関数は削除されました。
| is_numeric | 十六進表記（0xf4c3b00c など) の文字列は数値形式の文字列とみなされなくなりました。 つまり、is_numeric は FALSE を返すようになりました。
| json_decode | An empty PHP string or value that after casting to string is an empty string (NULL, FALSE) results in JSON syntax error.
| json_decode | Rejected RFC 7159 incompatible number formats - top level (07, 0xff, .1, -.1) and all levels ([1.], [1.e1])
| key | array は常に値で渡されるようになりました。 このバージョンより前は、可能な場合は参照で、それ以外の場合は値で 渡されていました。
| list | 文字列は扱えなくなりました 。
| list | list の式をまったくの空にすることはできなくなりました 。
| list | 代入操作が行われる順番が変わりました 。
| mcrypt_generic_end | mcrypt_generic_end 関数が削除されました。
| mktime | is_dst パラメータが削除されました。
| ob_start | ob_start を出力バッファコールバックの内部で使う場合、 この関数は E_ERROR の代わりに E_RECOVERABLE_ERROR を発行して、カスタムエラーハンドラで対応できるようにします。
| parse_ini_file | ハッシュマーク (#) をコメントとみなさないようになりました。
| php_uname | mode パラメーターが追加されました。
| preg_replace | /e 修飾子をサポートしなくなりました。かわりに preg_replace_callback を使いましょう。
| session_regenerate_id | session_regenerate_id saves old session data before closing.
| session_set_save_handler | オプションの validate_sid および update_timestamp パラメータが追加されました。
| session_start | options パラメータが追加されました。
| set_exception_handler | exception_handler に渡すパラメータの型が、 Exception から Throwable に変わりました。
| setlocale | category パラメータが文字列を受け付けなくなりました。 このバージョン以降では、定数 LC_* だけしか使えません。
| shmop_close | The type of shmid has been changed from int to resource.
| shmop_delete | The type of shmid has been changed from int to resource.
| shmop_open | The return type of shmop_open has been changed from int to resource.
| shmop_read | The type of shmid has been changed from int to resource.
| shmop_size | The type of shmid has been changed from int to resource.
| shmop_write | The type of shmid has been changed from int to resource.
| substr | string の文字数が start と等しい場合に空文字列を返すようになりました。 これまでのバージョンでは、FALSE を返していました。
| token_get_all | オプションの flags パラメータと TOKEN_PARSE フラグが導入されました。
| unserialize | options パラメータが追加されました。
| IntlDateFormatter::setTimeZoneId | この関数は削除されました。
5.6.25, 7.0.10 | imagetypes | IMG_WEBP が追加されました。
| SplFileObject::getCsvControl | 返り値の配列にエスケープ文字が追加されました。
5.6.16 | mysqli::real_connect | MySQL Native Driver 用の MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT フラグが追加されました。
5.6.12 | gd_info | WebP Support が追加されました。
5.6.6 | json_encode | option パラメータに JSON_PRESERVE_ZERO_FRACTION が追加されました。
5.6.5 | crypt | salt として "*0" が渡されたときに、 他の crypt の実装にあわせて "*1" を返すようになりました。 これより前のバージョンの PHP 5.6 では、間違った DES ハッシュを返していました。
5.6.3 | pack | "q"、"Q"、"J"、"P" が追加され、64ビットの数値が使えるようになりました。
5.6.1 | parse_ini_file | INI_SCANNER_TYPED モードが新たに追加されました。
| sem_acquire | $nowait パラメータが追加されました。
5.6.0 | array_fill | num にゼロを指定できるようになりました。これより前のバージョンでは、 num には正の数しか指定できませんでした。
| array_filter | オプションのパラメータ flag と、定数 ARRAY_FILTER_USE_KEY および ARRAY_FILTER_USE_BOTH が追加されました。
| crypt | salt を省略下場合に E_NOTICE が発生するようになりました。
| curl_setopt | CURLOPT_SAFE_UPLOAD のデフォルトが TRUE になりました。
| curl_setopt | CURLOPT_CLOSEPOLICY およびそれに関連する値が削除されました。
| hash_algos | gost-crypto のサポートが追加されました。GOST ハッシュ関数の実装には、 RFC 4357, section 11.2 で定義されている CryptoPro S-box テーブルを使っています。
| html_entity_decode | encoding パラメータのデフォルト値が、 default_charset の設定値に変わりました。
| htmlentities | encoding パラメータのデフォルト値が、 default_charset の設定値に変わりました。
| htmlspecialchars | encoding パラメータのデフォルト値が、 default_charset の設定値に変わりました。
| json_decode | true、 false および null は、すべて小文字のものだけを有効な値として受け付けるようになりました。 大文字が含まれる場合は警告が発生します。
| mb_regex_encoding | デフォルトのエンコーディングが EUC-JP から UTF-8 に変わりました。
| mcrypt_create_iv | MCRYPT_DEV_URANDOM is now the default value of source.
| mcrypt_decrypt | Invalid 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_connect | connect_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_insert | PGSQL_DML_STRING が渡されない限り、 この関数は、成功時に TRUE の代わりに接続リソースを返します。
| pg_lo_seek | PostgreSQL 9.3 以降での 64 ビットラージオブジェクトに対応しました。 これを使うには、クライアントとサーバーがいずれも PostgreSQL 9.3 以降であることと、 PHP が 64 ビット版であることが必要です。
| pg_lo_tell | PostgreSQL 9.3 以降での 64 ビットラージオブジェクトに対応しました。 これを使うには、クライアントとサーバーがいずれも PostgreSQL 9.3 以降であることと、 PHP が 64 ビット版であることが必要です。
| pg_lo_truncate | Added 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_crypto | STREAM_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_crypto | crypto_type がオプションになりました。
| unserialize | シリアライズされたデータを改変して C: を O: に置き換え、オブジェクトのインスタンス化の際にコンストラクタを呼ばないようにしたものは、 処理に失敗するようになりました。
| ReflectionClass::newInstanceWithoutConstructor | すべての内部クラスをインスタンス化できるようになりました。ただし final 宣言されたクラスは例外です。
| XMLReader::getAttributeNo | XMLReader::getAttributeNo は、 属性が存在しない場合に NULL を返すようになりました。
| XMLReader::getAttributeNs | XMLReader::getAttributeNS は、 属性が存在しない場合に NULL を返すようになりました。
5.5.38, 5.6.24, 7.0.9 | getenv | local_only パラメーターが追加されました。
5.5.22, 5.6.6 | flock | wouldblock パラメータを、Windows でもサポートするようになりました。
5.5.21, 5.6.5 | SplFileObject::fputcsv | escape パラメータが追加されました。
5.5.21 | crypt | salt として "*0" が渡されたときに、 他の crypt の実装にあわせて "*1" を返すようになりました。 これより前のバージョンの PHP では、間違った DES ハッシュを返していました。
5.5.19/5.6.3 | imagescale | new_height が負の数だったり省略されていたりした場合の、高さの計算の問題が修正されました。 これより前のバージョンでは、アスペクト比を正確に保つことができませんでした。
5.5.11 | substr_compare | length を 0 にもできるようになりました。
5.5.10 | DateTimeZone::__construct | timezone パラメータは、オフセット値を受け付けます。
5.5.8 | DatePeriod::__construct | end の型が DateTimeInterface に変わりました。 これより前のバージョンでは DateTime でした。
5.5.7 | apache_request_headers | CLI サーバーでもこの関数が使えるようになりました。
| apache_response_headers | CLI サーバーでもこの関数が使えるようになりました。
| getallheaders | CLI サーバーでもこの関数が使えるようになりました。
5.5.4 | fputcsv | escape_char パラメータが追加されました。
5.5.3/5.4.19 | pg_delete | table_name に対する SQL インジェクション、そして識別子に対する間接的な SQL インジェクションの問題を修正しました。
| pg_insert | table_name に対する SQL インジェクション、そして識別子に対する間接的な SQL インジェクションの問題を修正しました。
| pg_select | table_name に対する SQL インジェクション、そして識別子に対する間接的な SQL インジェクションの問題を修正しました。
| pg_update | table_name に対する SQL インジェクション、そして識別子に対する間接的な SQL インジェクションの問題を修正しました。
5.5.2 | DOMDocument::schemaValidate | flags パラメータが追加されました。
| DOMDocument::schemaValidateSource | flags パラメータが追加されました。
5.5.1 | hex2bin | 入力が16進文字列として不正な場合に、警告を発するようになりました。
| pg_unescape_bytea | 不正な文字列が渡された場合に、警告を発するようになりました。
| session_set_save_handler | オプションのパラメータ create_sid が追加されました。
5.5.0/PECL 3.0.0 | IntlDateFormatter::create | IntlCalendar オブジェクトを calendar に渡せるようになりました。 IntlTimeZone オブジェクトや DateTimeZone オブジェクトを timezone に渡せるようになりました。 無効なタイムゾーン ID (空文字列を含む) を timezone で指定できなくなりました。 timezone に NULL を指定した場合は、ICU のデフォルトではなく date_default_timezone_get が返すタイムゾーンを使うようになりました。
| IntlDateFormatter::format | IntlCalendar オブジェクトを value に渡せるようになりました。
| IntlDateFormatter::setCalendar | IntlCalendar オブジェクトを渡せるようになりました。
5.5.0 | DatePeriod::__construct | start の型が DateTimeInterface に変わりました。 これより前のバージョンでは、DateTime でした。
| curl_getinfo | CURLINFO_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_setopt | cURL リソースを、 CURLOPT_PROGRESSFUNCTION コールバックの最初の引数として渡すようになりました。
| curl_setopt | CURLOPT_SHARE が追加されました。
| empty | empty が、変数だけではなく式にも対応するようになりました。 variables.
| imagerotate | ignore_transparent が無視されるようになりました。
| imagerotate | imagesetinterpolation 関数で設定した補間方式の影響を受けるようになりました。
| ip2long | このバージョンより前は、Windows において、IPv4 のドット形式のアドレスでなくても ip2long が有効な数値を返すことがありました。
| iterator_to_array | iterator_to_array で use_keys パラメータを有効にしたときの、 integer や string 以外の型に対するサポートを強化しました。
| json_encode | JSON_PARTIAL_OUTPUT_ON_ERROR オプションが追加されました。
| json_encode | パラメータ depth が追加されました。
| json_encode | The return value on failure was changed from null string to FALSE.
| mysql_connect | この関数は E_DEPRECATED エラーを発するようになりました。
| mysql_db_name | mysql_list_dbs 関数は非推奨となり、 E_DEPRECATED レベルのエラーが発生するようになりました。
| mysql_pconnect | この関数は E_DEPRECATED エラーを発するようになりました。
| mysql_tablename | mysql_tablename 関数は非推奨となり、 E_DEPRECATED レベルのエラーが発生するようになりました。
| pack | "Z" が追加されました。Perl の "a" と互換性のある機能です。
| php_logo_guid | php_logo_guid は PHP から削除されました。
| phpinfo | ロゴの GUID がデータ URI に置き換わりました。そのため、expose_php をオフにしても phpinfo() の結果には何も影響が出なくなりました。クレジットも、リンクではなく出力に埋め込まれるようになりました。
| preg_replace | /e 修飾子が非推奨になりました。かわりに preg_replace_callback を使いましょう。 セキュリティ上のリスクの関する詳細は PREG_REPLACE_EVAL のドキュメントを参照ください。
| set_error_handler | error_handler に NULL を渡せるようになりました。
| set_exception_handler | これより前のバージョンでは、NULL を渡した場合の返り値が TRUE でした。 PHP 5.5.0 以降は、以前に設定されていたハンドラを返すようになります。
| setcookie | クライアントに送出する Set-Cookie ヘッダに、Max-Age 属性も含めるようになりました。
| setrawcookie | クライアントに送出する Set-Cookie ヘッダに、Max-Age 属性も含めるようになりました。
| unpack | Perl の関数に動きを近づけるための変更をしました。 "a" は最後の NULL バイトを維持するようになりました。 "A" は最後の ASCII 空白文字 (スペース、タブ、改行、キャリッジリターン、 NULL バイト) をすべて取り除くようになりました。 NULL 埋め文字列用に "Z" が追加されました。これは最後の NULL バイトを取り除きます。 NULL bytes.
| zend_logo_guid | zend_logo_guid 関数は PHP から削除されました。
| IntlDateFormatter::setTimeZoneId | この関数は非推奨になりました。
| mysqli::commit | flags と name が追加されました。
| mysqli::options | MYSQLI_SERVER_PUBLIC_KEY オプションが追加されました。
| mysqli::rollback | flags と name が追加されました。
| SoapClient::SoapClient | ssl_method オプションが追加されました。
5.4.43, 5.5.27, 5.6.11 | escapeshellarg | 感嘆符がスペースで置き換えられるようになりました。
| escapeshellcmd | 感嘆符がスペースで置き換えられるようになりました。
5.4.32, 5.5.16 | ucwords | delimiters パラメータが追加されました。
5.4.8 | assert | description パラメータが追加されました。 description はまた、 ASSERT_CALLBACK モードのコールバック関数の4番目の引数にも指定できるようになりました。
| mb_strcut | length に NULL を渡すと、文字列の末尾までのすべてのバイトを取り出すようになりました。 これより前のバージョンでは、NULL は 0 と同じ扱いでした。
| mb_substr | length に NULL を渡すと、文字列の末尾までのすべてのバイトを取り出すようになりました。 これより前のバージョンでは、NULL は 0 と同じ扱いでした。
5.4.7 | curl_getinfo | CURLINFO_PRIMARY_IP、 CURLINFO_PRIMARY_PORT、 CURLINFO_LOCAL_IP および CURLINFO_LOCAL_PORT が追加されました。
| parse_url | host の認識方法を修正し、 scheme を省略してコンポーネント区切りから始まる場合にも対応するようになりました。
5.4.4 | hex2bin | 入力の文字列長が奇数の場合に警告を発するようになりました。 PHP 5.4.0 ではそんな文字列も黙って受け入れていましたが、 最終バイトは切り捨てられていました。
5.4.0/PECL 2.0.0b1 | idn_to_ascii | パラメータ variant と idna_info が追加され、UTS #46 をサポートするようになりました。
| idn_to_utf8 | パラメータ variant と idna_info が追加され、UTS #46 をサポートするようになりました。
5.4.0 | DOMDocument::loadHTML | options パラメータが追加されました。
| DOMDocument::loadHTMLFile | options パラメータが追加されました。
| 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_multisort | arg で指定できるソートフラグに 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_record | raw パラメータが追加されました。
| empty | 文字列のオフセットに非数値を指定した場合は TRUE を返すようになりました。
| error_reporting | E_STRICT が E_ALL に含まれるようになりました。
| filter_input_array | add_empty パラメータが追加されました。
| filter_var_array | add_empty パラメータが追加されました。
| get_html_translation_table | encoding パラメータのデフォルトが 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 サーバーモジュール としてインストールされた時だけサポートされました。
| gzcompress | encoding パラメータが追加されました。
| gzdeflate | encoding パラメータが追加されました。
| gzencode | FORCE_DEFLATE が RFC 1950 準拠の出力を生成するようになりました。 output.
| hash | tiger アルゴリズムで、ビッグエンディアンのバイトオーダーを使うようになりました。以下のサンプルも参照ください。
| hash_algos | joaat、fnv132 および fnv164 のサポートを追加し、Salsa10 および Salsa20 のサポートを削除しました。
| html_entity_decode | 定数 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。
| htmlentities | encoding パラメータのデフォルトが UTF-8 に変わりました。
| htmlentities | 定数 ENT_SUBSTITUTE、ENT_DISALLOWED、 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。
| htmlspecialchars | 定数 ENT_SUBSTITUTE、ENT_DISALLOWED、 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。
| htmlspecialchars | encoding パラメータのデフォルトが UTF-8 に変わりました。
| htmlspecialchars_decode | 定数 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。
| http_build_query | enc_type パラメータが追加されました。
| iconv | このバージョン以降は、出力文字セットに //IGNORE が指定されていない限り、 無効な文字に対して FALSE を返すようになりました。 以前のバージョンでは、出力文字列の一部だけを返していました。
| imagecolorset | alpha パラメータが追加されました。
| imagegd | ストリームリソースを to に渡せるようになりました。
| imagegd2 | ストリームリソースを to に渡せるようになりました。
| imagegif | ストリームリソースを to に渡せるようになりました。
| imagejpeg | 空文字列を to に渡して この引数をスキップすることはできなくなりました。
| imagejpeg | ストリームリソースを to に渡せるようになりました。
| imagepng | ストリームリソースを to に渡せるようになりました。
| imagewbmp | ストリームリソースを to に渡せるようになりました。
| imagewebp | ストリームリソースを to に渡せるようになりました。
| isset | 文字列のオフセットに非数値を指定した場合は FALSE を返すようになりました。
| json_decode | options パラメータが追加されました。
| json_encode | option に JSON_PRETTY_PRINT、JSON_UNESCAPED_SLASHES および JSON_UNESCAPED_UNICODE が追加されました。
| mb_encode_numericentity | is_hex パラメータが追加されました。
| mysqli_get_cache_stats | mysqli_get_cache_stats が削除されました。
| number_format | この関数は、 dec_point や thousands_sep に複数バイトを指定できるようになりました。 それまでは、複数のバイトを指定しても先頭の 1 バイトしか使われませんでした。
| ob_start | チャンクサイズに 1 を指定したときに、 1 バイトのチャンクを出力バッファに送るようになりました。
| ob_start | ob_start の三番目のパラメータが boolean erase (これを FALSE にすると、スクリプトの実行が終了するまで出力バッファを削除できなくなります) から integer flags に変わりました。 残念ながら、そのせいで API の互換性が崩れてしまい。 PHP 5.4.0 より前のバージョンで三番目のパラメータを使っていたコードは、 そのままでは期待通りに動かなくなりました。 この例 のようにして、両方のバージョンでの互換性を保つ必要があります。
| openssl_decrypt | raw_output パラメータが options に変わりました。
| openssl_encrypt | raw_output パラメータが options に変わりました。
| preg_match_all | matches パラメータが必須ではなくなりました。
| scandir | sorting_order 定数 が追加されました。これまでのバージョンでは、非ゼロの値を指定するとすべて降順となっていました。 つまり、PHP のバージョンにかかわらず、次のようになります。 0 を指定すれば昇順、1 を指定すれば降順。 SCANDIR_SORT_NONE に対応する設定は、PHP 5.4.0 より前のバージョンにはありません。
| session_set_save_handler | SessionHandlerInterface でセッションハンドラを実装したり、 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 という意味でした。
| sort | sort_flags に SORT_NATURAL と SORT_FLAG_CASE が使えるようになりました。
| PDOStatement::getColumnMeta | PDO_DBLIB ドライバのサポートが追加されました
| Phar::setStub | len パラメータが追加されました。
| PharData::setStub | len パラメータが追加されました。
| SimpleXMLElement::getDocNamespaces | from_root パラメータが追加されました。
| SoapClient::SoapClient | keep_alive オプションが追加されました。
5.4 | grapheme_substr | length に正の値を指定して、 引数の文字列がその長さより短かった場合に、start に基づいて残りのすべての文字列を返すようになりました。 以前のバージョンでは FALSE を返していました。
5.3.19 | imagecreatefromxpm | imagecreatefromxpm が Windows でも使えるようになりました。
5.3.9 | DateTime::createFromFormat | 書式文字列 + が追加されました。
| is_a | パラメータ allow_string が追加されました。
| is_subclass_of | パラメータ allow_string が追加されました。
5.3.7 | crypt | Blowfish のモード $2x$ および $2y$ が追加され、高ビット攻撃に対応できるようになりました。
| curl_getinfo | CURLINFO_REDIRECT_URL が追加されました。
| is_subclass_of | class_name にインターフェイスも使えるようになりました。
5.3.6 | DateTime::modify | 日付/時刻の絶対指定も効果を及ぼすようになりました。 これまでは、相対指定部分だけを用いていました。
| DOMDocument::saveHTML | node パラメータが追加されました。
| array_product | 空の配列の積が 1 を返すようになりました。これまでのバージョンでは、空の配列に対しては 0 を返していました。
| debug_backtrace | provide_object パラメータが options パラメータに変わり、オプション DEBUG_BACKTRACE_IGNORE_ARGS が追加されました。
| debug_print_backtrace | オプションのパラメータ options が追加されました。
| preg_match | offset が subject よりも長いときに FALSE を返すようになりました。
| preg_match_all | offset が subject よりも長いときに FALSE を返すようになりました。
| PDO_MYSQL DSN | 5.3.6 より前のバージョンでは charset は無視されていました。
5.3.4 | copy | context パラメータが実際に効力を持つようになりました。 以前のバージョンでは、context に何を指定しても無視されていました。
| get_html_translation_table | encoding パラメータが追加されました。
| mt_rand | max < min の場合に E_WARNING を発行して FALSE を返すようになりました。
| rawurlencode | rawurlencode を EBCDIC 文字列で使った場合に、 チルダ文字をエンコードしなくなりました。
| sleep | PHP 5.3.4 より前のバージョンでは、Windows で sleep を実行すると、遅延が発生したときには常に NULL を返していました。 処理が完了した場合もシグナルで中断した場合も同じです。
| strip_tags | strip_tags は、 allowable_tags 内の自己終了型 XHTML タグを無視するようになりました。
| IntlDateFormatter::format | DateTime オブジェクトを value パラメータに渡せるようになりました。
| mysqli_driver::$report_mode | レポートモードがプロセス単位ではなくリクエスト単位に変わりました。
5.3.3 | DOMXPath::evaluate | registerNodeNS パラメータが追加されました。
| DOMXPath::query | registerNodeNS パラメータが追加されました。
| html_entity_decode | デフォルトのエンコーディングが ISO-8859-1 から UTF-8 に変わりました。
| imap_fetch_overview | udate プロパティが追加されました。
| json_encode | option に JSON_NUMERIC_CHECK が追加されました。
| ldap_sasl_bind | Windows をサポートするようになりました。
| openssl_decrypt | iv パラメータが追加されました。
| openssl_encrypt | iv パラメータが追加されました。
| parse_url | URL のパースに失敗したときに E_WARNING を発生させないようになりました。
5.3.2 (PECL OCI8 1.4) | oci_set_prefetch | これより前のバージョンでは、rows は 1 以上でなければなりませんでした。
5.3.2 | crypt | SHA-256 および SHA-512 による暗号化が追加されました。Ulrich Drepper の 実装 を使っています。
| crypt | Blowfish で無効な rounds を指定したときに、DES に切り替えるのではなく "failure" 文字列 ("*0" あるいは "*1") を返すようになりました。
| flock | ファイルのリソースハンドルを閉じたときにロックを自動的に解放する機能が削除されました。 ロックの解放は、常に手動で行わなければなりません。
| gmp_init | base が拡張され、2 から 36 までだったのが 2 から 62 までおよび -2 から -36 までとなりました。
| gmp_strval | base が拡張され、2 から 36 までだったのが 2 から 62 までおよび -2 から -36 までとなりました。
| imap_append | INTERNALDATE のサポートが追加されました。
| imap_open | params が追加されました。
5.3.1 | get_defined_constants | Windows のみ: コア定数のカテゴリが Core になりました。 それまでは mhash でした。
| ibase_query | 成功した場合で変更された行がなかったときに TRUE を返すようになりました。 これまでは 0 (ゼロの後ろにスペースが続きます) を返していました。
| rename | rename は Windows で別のドライブにリネームできるようになりました。
5.3.0 (PECL OCI8 1.3.4) | oci_set_prefetch | これより前のバージョンでは、プリフェッチの上限は rows 行と 1024 * rows バイトのうちの少ないほうでした。 バイト数の制限は、このバージョンで取り除かれました。
5.3.0 | DateTime::__construct | time が 日付と時刻の書式 として無効な場合に、例外がスローされるようになりました。 これまではエラーが発生していました。
| 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::__construct | path を開けない場合に UnexpectedValueException をスローします。
| acosh | この関数はすべてのプラットフォームで使用できるようになりました。
| array_multisort | arg で指定できるソートフラグに SORT_LOCALE_STRING が追加されました。
| array_reduce | initial に 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 | コンテキストのサポートが追加されました。
| crypt | PHP に MD5 crypt, Standard DES, Extended DES および Blowfish の実装が含まれるようになりました。システム側でこれらのアルゴリズムがサポートされていない場合に、 この実装を使用します。
| curl_getinfo | CURLINFO_CERTINFO が追加されました。
| curl_setopt | CURLOPT_PROGRESSFUNCTION が追加されました。
| date_default_timezone_set | E_STRICT ではなく E_WARNING をスローするようになりました。
| define_syslog_variables | この関数は E_DEPRECATED を発行するようになりました。
| dl | dl がいくつかの SAPI で無効になりました。 安定性に問題があったためです。 現在 dl が使える SAPI は CLI と Embed(組み込み) だけです。 かわりに 拡張モジュール読み込みディレクティブ を使ってください。
| dns_get_record | この関数は、Windows プラットフォームでも動作するようになりました。
| dns_get_record | これより前のバージョンでは、authns パラメータを指定したときには addtl パラメータも必須となっていました。
| error_reporting | E_DEPRECATED と E_USER_DEPRECATED が追加されました。
| exif_imagetype | アイコンをサポートしました。
| expm1 | この関数はすべてのプラットフォームで使用できるようになりました。
| fgetcsv | escape パラメータが追加されました。
| fnmatch | この関数は Windows プラットフォームでも動作するようになりました。
| func_get_arg | ある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して FALSE を返すようになりました。
| func_get_arg | この関数はパラメータリスト内で使用できるようになりました。
| func_get_args | ある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して FALSE を返すようになりました。
| func_get_args | この関数はパラメータリスト内で使用できるようになりました。
| func_num_args | この関数はパラメータリスト内で使用できるようになりました。
| func_num_args | ある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して -1 を返すようになりました。
| gd_info | JPG Support 属性が JPEG Support という名前に変わりました。
| get_cfg_var | get_cfg_var は、 配列形式の ini オプションを返せるようになりました。
| get_class | NULL が object のデフォルトとなりました。 したがって、NULL を object に渡すのは何も指定しないのと同じ意味ということになります。
| get_defined_constants | コア定数のカテゴリが Core になりました。 それまでは internal でした。Windows では、 コア定数のカテゴリは mhash となります。
| get_object_vars | object がオブジェクトではない場合に NULL を返すようになりました。 これより前のバージョンでは、FALSE を返していました。
| get_resource_type | If handle is not a resource this functions returns NULL. Formerly, FALSE has been returned.
| getimagesize | アイコンに対応しました。
| getmxrr | この関数は、Windows プラットフォームでも動作するようになりました。
| getopt | "=" を引数/値の区切り文字として使用できるようになりました。
| getopt | この関数はシステムに依存しなくなり、今では Windows でも動作するようになりました。
| getopt | パラメータ longopts がすべてのプラットフォームで使えるようになりました。
| getopt | オプションの値 ("::" で指定します) に対応しました。
| hash_algos | md2、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_all | details が追加されました。
| is_a | この関数は非推奨ではなくなりました。そのため E_STRICT も発生しなくなりました。
| json_decode | オプションの depth が追加されました。デフォルトの再帰の深さが 128 から 512 に増えました。
| json_encode | options パラメータが追加されました。
| link | この関数は、Windows プラットフォーム (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。
| linkinfo | この関数は、Windows プラットフォーム (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。
| log1p | この関数はすべてのプラットフォームで使用できるようになりました。
| mb_get_info | エントリ "http_output_conv_mimetypes" が使用できるようになりました。
| mcrypt_create_iv | MCRYPT_DEV_RANDOM and MCRYPT_DEV_URANDOM became available on Windows platforms.
| mcrypt_create_iv | It is no longer required to call srand first. This is now done automatically.
| mktime | mktime は、 is_dst パラメータを使用した場合に E_DEPRECATED をスローするようになりました。
| mysql_db_query | この関数は E_DEPRECATED をスローするようになりました。
| mysql_escape_string | この関数は E_DEPRECATED をスローするようになりました。
| mysqli_get_cache_stats | mysqli_get_cache_stats がスタブとして追加されました。
| nl2br | オプションの is_xhtml パラメータが追加されました。 以前のバージョンでは、杖に '<br />' が挿入されていました。
| openssl_seal | method パラメータが追加されました。
| parse_ini_file | オプションのパラメータ scanner_mode が追加されました。 シングルクォートも変数の代入に使うことができます。 ハッシュ記号 (#) はコメントとしては扱われなくなり、 もし使うと警告が発生します。
| pg_lo_create | オプションの object_id が追加されました。
| pg_lo_import | オプションの object_id が追加されました。
| preg_quote | - 文字がクォートされるようになりました。
| property_exists | この関数は、アクセス権に依存せずにプロパティの存在確認を行うようになりました。
| rawurlencode | RFC 3986 を満たすようになりました。
| readlink | この関数は、Windows プラットフォーム (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。
| realpath | これより前のバージョンでは、*BSD システムでは realpath は最後の path コンポーネントのみが存在しない場合には失敗となりませんでした。 このバージョン以降では失敗となります。
| register_tick_function | Ticks はスレッド化されたウェブサーバーモジュールをサポートするようになりました。
| round | mode パラメータが追加されました。
| session_start | 何らかの理由でセッションの開始に失敗した場合に FALSE を返すようになりました。 これより前のバージョンでは常に TRUE を返していました。
| setlocale | category パラメータに 定数 LC_* ではなく文字列が渡された場合に、 この関数は E_DEPRECATED をスローするようになりました。
| shm_attach | この関数の返す値の型が、 integer から リソース に変わりました。
| socket_create_pair | この関数は、ふたたび Windows プラットフォームで使用可能となりました。
| spl_autoload_register | 名前空間に対応するようになりました。
| spl_autoload_register | prepend パラメータが追加されました。
| stream_context_create | オプションの引数 params が追加されました。
| stream_socket_pair | この関数は、Windows プラットフォームでも使用可能となりました。
| stristr | オプションの before_needle パラメータが追加されました。
| strlen | これより前のバージョンでは、配列を「Array」という文字列とみなして処理していました。 つまり文字列の長さは 5 になります。そして E_NOTICE レベルのエラーが発生します。
| strstr | オプションの before_needle パラメータが追加されました。
| strtotime | PHP 5.3.0 より前のバージョンでは、24:00 は無効なフォーマットとされており strtotime は FALSE を返していました。
| strtotime | PHP 5.3.0 より前のバージョンでは、 strtotime の引数 time に this week や previous week、 last week、next week を指定すると、現在日時から数えて 7 日単位という解釈になっていました。 Monday から Sunday までという単位は考慮していませんでした。
| sybase_connect | The new parameter was added.
| symlink | この関数は、Windows プラットフォーム (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。
| time_nanosleep | この関数は Windows プラットフォームでも使用可能となりました。
| time_sleep_until | この関数は Windows プラットフォームでも使用可能となりました。
| touch | Windows 環境でディレクトリの最終更新日が変更できるようになりました。
| 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::__construct | name に クロージャ を指定できるようになりました。
| SplFileObject::setCsvControl | escape パラメータが追加されました。
| SplObjectStorage::attach | data パラメータが追加されました。
| XMLReader::expand | basenode パラメータが追加されました。
5.2.15 | mysqli_driver::$report_mode | レポートモードがプロセス単位ではなくリクエスト単位に変わりました。
5.2.11 | get_defined_constants | categorize パラメータが正しく動作するようになりました。 これまでは categorize パラメータが !is_null($categorize) で解釈されており、 NULL 以外の値を指定すると定数を強制的にカテゴリ分類させてしまっていました。
5.2.10 | array_rand | 結果の配列のキーがシャッフルされなくなりました。
| array_unique | sort_flags のデフォルト値を SORT_STRING に戻しました。
| curl_setopt | CURLOPT_PROTOCOLS および CURLOPT_REDIR_PROTOCOLS が追加されました。
| ip2long | このバージョンより前は、IPv4 のドット形式のアドレスでなくても ip2long が有効な数値を返すことがありました。
| natsort | ゼロ埋めされた数値形式の文字列 ('00005' など) では、基本的にゼロを無視するようになりました。
5.2.9 | array_unique | オプションの sort_flags が追加され、 デフォルトは SORT_REGULAR となりました。5.2.9 より前のバージョンでは、 この関数は内部的に SORT_STRING によるソートを行っていました。
5.2.8 | XSLTProcessor::importStylesheet | ふたたび SimpleXMLElement も受け付けるようになりました。 PHP 5.2.6 より前は、この機能が壊れていました。
5.2.7 | error_log | message_type の値として 4 が使用できるようになりました。
| parse_ini_file | 構文エラーが発生した場合は、空の配列ではなく FALSE を返すようになりました。
| round | round の内部での挙動が変更され、 C99 標準に準拠するようになりました。
| strtotime | 5.2.7 より前の PHP 5 では、「ある月の何回目の何曜日」 を取得するときにもしその月の初日がその曜日だった場合、 タイムスタンプが間違って一週間追加されてしまっていました。 これは 5.2.7 以降のバージョンでは修正されています。
5.2.6 | fopen | 'c' および 'c+' が追加されました。
5.2.5 | addcslashes | エスケープシーケンス \v と \f が追加されました。
| debug_backtrace | オプションのパラメータ provide_object が追加されました。
| imagefilter | IMG_FILTER_COLORIZE でアルファチャネルをサポートするようになりました。
5.2.4 | array_slice | length のデフォルト値が NULL に変わりました。 NULL を指定すると、array の長さを使うようになります。 これより前のバージョンでは、NULL を指定した場合は長さゼロと見なされていました (つまり、何も返しませんでした)。
| checkdnsrr | TXT type が追加されました。
| curl_getinfo | CURLINFO_PRIVATE が追加されました。
| curl_setopt | CURLOPT_PRIVATE が追加されました。
| get_loaded_extensions | オプションの zend_extensions パラメータが追加されました。
| ldap_first_attribute | ber_identifier が削除されました。 これは PHP が自動的に処理するようになりました。
| ldap_next_attribute | ber_identifier が削除されました。 これは PHP が自動的に処理するようになりました。
| parse_ini_file | 数字から始まるキーおよびセクション名は、PHP では 整数 として評価されます。 よって、0 で始まる数字は 8 進数として評価され、0x で始まる数字は 16 進数として評価されます。
| stream_wrapper_register | flags パラメータが追加されました。
5.2.3 | getimagesize | 読み込み時にエラーが発生した場合のエラーレベルが、 E_WARNING から E_NOTICE に変わりました。
| htmlentities | double_encode パラメータが追加されました。
| htmlspecialchars | double_encode パラメータが追加されました。
| json_decode | ネストの制限が 20 から 128 に拡張されました。
| XMLWriter::writeElement | content パラメータがオプションとなりました。
| XMLWriter::writeElementNS | content パラメータがオプションとなりました。
| PDOStatement::getColumnMeta | table フィールド
5.2.2 - 5.2.6 | substr | start が負の切り出しを意味したり 切り出し位置を超える値になった場合に false を返すようになりました。 それ以外のバージョンでは、文字列の先頭から取得します。
5.2.2 | DOMDocument::registerNodeClass | 5.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.1 | iterator_to_array | use_keys パラメータが追加されました。
| json_decode | 基本型の JSON デコードに対応しました。
| memory_get_peak_usage | この関数を使用するために、 --enable-memory-limit でコンパイルすることは必須ではなくなりました。
| memory_get_usage | この関数を使用するために、 --enable-memory-limit でコンパイルすることは必須ではなくなりました。
| mt_srand | PHP の メルセンヌ・ツイスター実装は、Richard Wagner による新たなシード生成アルゴリズムを使用するようになりました。 これまでのバージョンと同じシード値で同じ乱数列が生成されることはなくなりました。 この振る舞いが再び変わる見込みはありませんが、 それに関わらずこの振る舞いに頼るのは安全ではありません。
| proc_open | other_options パラメータに オプション bypass_shell が追加されました。
| realpath | これより前のバージョンでは、path が空文字列あるいは NULL の場合に realpath は FALSE を返していました。
5.2.0 | base64_decode | strict が追加されました。
| curl_multi_info_read | msgs_in_queue が追加されました。
| error_reporting | E_RECOVERABLE_ERROR が追加されました。
| imagettftext | text で十六進形式のエンティティを指定できるようになりました。
| imap_open | n_retries が追加されました。
| imap_reopen | n_retries が追加されました。
| mb_strrpos | オプションのパラメータ offset が追加されました。
| memory_get_peak_usage | real_usage が追加されました。
| memory_get_usage | real_usage が追加されました。
| openssl_verify | signature_alg パラメータが追加されました。
| pathinfo | 定数 PATHINFO_FILENAME が追加されました。
| pg_escape_bytea | connection が追加されました。
| pg_escape_string | connection が追加されました。
| session_get_cookie_params | 返される配列に、"httponly" エントリが追加されました。
| session_set_cookie_params | httponly パラメータが追加されました。
| set_error_handler | $php_errormsg の内容を設定するため、エラーハンドラは必ず FALSE を返さなければなりません。
| setcookie | httponly パラメータが追加されました。
| setrawcookie | httponly パラメータが追加されました。
| snmp_set_oid_numeric_print | PHP 5.2.0 以降で使えます。
| PDOStatement::execute | input_parameters のキーが SQL で宣言したものと一致しなければならないようになりました。 PHP 5.2.0 より前のバージョンでは一致しない場合は単に無視されるだけでした。
| SimpleXMLElement::children | オプションのパラメータ is_prefix が追加されました。
| SimpleXMLElement::__construct | ns と is_prefix が追加されました。
| SoapServer::SoapServer | typemap オプションが追加されました。
| XMLReader::open | encoding および options が追加されました。
| XMLReader::XML | encoding および options が追加されました。
5.1.3 | DirectoryIterator::__construct | path が空文字列の場合に RuntimeException をスローします。
| curl_getinfo | CURLINFO_HEADER_OUT が追加されました。
| get_headers | この関数はデフォルトのストリームコンテキストを使用します。 これは、stream_context_set_default 関数を使用して設定/変更することが可能です。
| http_build_query | 角括弧がエスケープされるようになりました。
| imagecolorallocate | 作成に失敗した場合に FALSE を返すようになりました。 これより前のバージョンでは、-1 を返していました。
| imagecolorallocatealpha | 作成に失敗した場合に FALSE を返すようになりました。 これより前のバージョンでは、-1 を返していました。
| imagepng | filters パラメータが追加されました。
| mb_get_info | エントリ "mail_charset", "mail_header_encoding" および "mail_body_encoding" が使用できるようになりました。
| SoapClient::__doRequest | one_way パラメータが追加されました。
| XMLReader::getAttribute | 属性が見つからない場合に NULL を返すようになりました。 これより前のバージョンでは空文字列を返していました。
5.1.2 | date_default_timezone_set | timezone_identifier パラメータの内容を 検証するようになりました。
| header | この関数は一度に複数のヘッダを送信できないようになりました。 これは、ヘッダインジェクション攻撃への対策です。
| http_build_query | パラメータ arg_separator が追加されました。
| imagepng | quality パラメータが追加されました。
| parse_url | パラメータ component が追加されました。
| SimpleXMLElement::__construct | options と data_is_url が追加されました。
5.1.1 | date | PHP 5.1.1 以降、format パラメータで標準的な 日付/時刻フォーマットを指定する際に有用な 定数がいくつか追加されました。
| debug_backtrace | 現在のオブジェクトを返せるようになりました。
| gmdate | PHP 5.1.1 以降、format パラメータで標準的な 日付/時刻フォーマットを指定する際に有用な 定数がいくつか追加されました。
5.1.0 | DirectoryIterator::__construct | エラーが発生したときに RuntimeException をスローします。 これより前のバージョンでは Exception をスローしていました。
| DOMDocument::save | options パラメータが追加されました。
| DOMDocument::saveXML | options パラメータが追加されました。
| class_implements | 文字列として class パラメータを渡すオプションが追加されました。 autoload パラメータが追加されました。
| class_parents | 文字列として class パラメータを渡すオプションが追加されました。 autoload パラメータが追加されました。
| ctype_digit | PHP 5.1.0 より前のバージョンでは、この関数は text が空文字列の場合に TRUE を返していました。
| curl_setopt | CURLOPT_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 が発生するようになりました。
| explode | limit に負の数を指定できるようになりました。
| fgetcsv | length が必須ではなくなりました。 デフォルトは 0 で、これは長さの制限がないことを表します。
| file_get_contents | offset と maxlen パラメータが追加されました。
| file_put_contents | LOCK_EX のサポートが追加され、 data パラメータにストリームリソースを指定することが可能になりました。
| get_parent_class | オブジェクトの外部からパラメータなしでコールすると、 この関数は警告を発生したうえで NULL を返していました。しかし、今は FALSE を返します。
| gettimeofday | return_float パラメータが追加されました。
| glob | GLOB_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 日 までに制限されます。
| gmmktime | PHP 5.1.0 で、is_dst パラメータは廃止されました。 その代わりに、新しいタイムゾーン処理機能が使用されます。
| idate | タイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
| imagerotate | ignore_transparent が追加されました。
| intval | オブジェクトを var に渡すと、E_NOTICE が発生して 1 を返します。
| localtime | タイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
| md5_file | ストリーム API を使用した関数に変更されました。 これは md5_file('http://example.com/..') のようなラッパーで利用可能であることを意味します。
| mktime | タイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
| mktime | 引数なしでコールすると、mktime は E_STRICT notice を発行するようになりました。かわりに time 関数を使用しましょう。
| mktime | is_dst パラメータは廃止されました。 エラー時には -1 ではなく FALSE を返すようになりました。 年月日がすべてゼロとすることが可能になりました。
| mssql_connect | パラメータ new_link が追加されました。
| openssl_pkcs7_verify | content パラメータが追加されました。
| preg_replace | count 引数が追加されました。
| preg_replace_callback | パラメータ count が追加されました。
| session_regenerate_id | delete_old_session パラメータが追加されました。
| sha1_file | ストリーム API を使用するように変更しました。つまり、 sha1_file('http://example.com/..') のように ラッパーとともに使用できるということです。
| str_word_count | charlist パラメータが追加されました。
| stream_copy_to_stream | offset パラメータが追加されました。
| stream_filter_append | PHP 5.1.0 より前のバージョンでは、この関数は成功した場合に TRUE、 失敗した場合に FALSE を返します。
| stream_filter_prepend | PHP 5.1.0 より前のバージョンでは、この関数は 成功した場合に TRUE、 失敗した場合に FALSE を返します。
| stream_get_contents | offset が追加されました。
| strftime | タイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
| strtotime | 失敗時に -1 の代わりに FALSE を返すようになりました。
| strtotime | タイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。
| substr_compare | 負の offset を使用できるようになりました。
| substr_count | offset と length パラメータが追加されました。
| var_export | マジックメソッド __set_state() を使用することで、 クラスを含む配列やクラスをエクスポートできるようになりました。
| XSLTProcessor::registerPHPFunctions | restrict パラメータが追加されました。
5.0.5 | php_check_syntax | この関数は PHP から削除されました。
5.0.4 | msql_fetch_array | NULL 値を含むカラムからデータを取得する際のバグが修正されました。 そのようなカラムは結果の配列に含まれていませんでした。
| msql_fetch_object | NULL 値を含むカラムからデータを取得する際のバグが修正されました。 そのようなカラムは結果の配列に含まれていませんでした。
| msql_fetch_row | NULL 値を含むカラムからデータを取得する際のバグが修正されました。 そのようなカラムは結果の配列に含まれていませんでした。
5.0.3 | get_class_vars | get_class_vars は現在のスコープからアクセスできるプロパティのみを返すようになりました。
| is_subclass_of | object パラメータに文字列 (クラス名) を指定可能です。
| php_check_syntax | php_check_syntax の後に exit をコールするとセグメンテーションフォールトが発生します。
5.0.2 | array_slice | オプションのパラメータ preserve_keys が追加されました。
| class_exists | 定義済みのインターフェイスに対しては TRUE を返さないようになりました。 インターフェイスについては interface_exists を使用します。
| get_class_vars | get_class_vars をコールすると、 すべてのプロパティが配列として公開されるようになりました。 これまでは、protected や private なプロパティの先頭には nul バイトが付加されていました。
| sort | SORT_LOCALE_STRING が追加されました。
| strtotime | 5.0.2 までの PHP 5 では、"now" やその他の相対時刻は誤って当日の真夜中から計算されます。 他のバージョンでは、これは正しく現在時刻から計算されます。
5.0.1 | get_class_vars | get_class_vars をコールすると、 オブジェクトをクラスに変換するときのように すべてのプロパティを公開するようになりました。
| php_check_syntax | error_message が参照渡しになりました。
5.0.0 | apache_get_modules | Apache 1 を使用している、もしくは Apache 2 で フィルター API として使用している場合に利用可能です。 以前は、Apache 2 の ハンドラ API として使用している場合にのみ利用可能でした。
| curl_setopt | CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE および CURLOPT_HTTP200ALIASES が追加されました。
| dirname | dirname がバイナリセーフとなりました。
| error_reporting | E_STRICT が追加されました (これは E_ALL には含まれません)。
| is_a | この関数は非推奨となり、かわりに instanceof 演算子の使用が推奨されるようになりました。この関数をコールすると E_STRICT が発生します。
| opendir | path が ftp:// URL ラッパーをサポートします。
| parse_ini_file | 値をダブルクォートで囲めばその中で改行を使用することもできます。
| rename | rename は いくつかの URL ラッパーを併用することができるようになりました。 rename をサポートしているラッパーの一覧については、 を参照ください。
| rmdir | PHP 5.0.0 以降、rmdir は いくつかの URL ラッパーを併用することが可能です。 rmdir をサポートしているラッパーの一覧については、 を参照ください。
| strip_tags | strip_tags がバイナリセーフとなりました。
| strrpos | needle は 1 文字以上の文字列を指定可能です。
| strtotime | マイクロ秒も受け付けるようになりましたが、指定してもそれは無視されます。
| unlink | PHP 5.0.0 以降、unlinkは いくつかのURL ラッパーと共に使用することもできます。 unlinkをサポートするラッパーのリストについては をご覧ください。