サンプル
付録
PHP Manual

# 変更履歴

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

Version | Function | Description
--- | --- | ---
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 | 不正な文字列が渡された場合に、警告を発するようになりました。
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 | curl_setopt | CURLOPT_SHARE が追加されました。
| curl_setopt | cURL リソースを、 CURLOPT_PROGRESSFUNCTION コールバックの最初の引数として渡すようになりました。
| empty | empty が、変数だけではなく式にも対応するようになりました。 variables.
| gd_info | WebP Support が追加されました。
| imagerotate | imagesetinterpolation 関数で設定した補間方式の影響を受けるようになりました。
| iterator_to_array | iterator_to_array で use_keys パラメータを有効にしたときの、 integer や string 以外の型に対するサポートを強化しました。
| json_encode | パラメータ depth が追加されました。
| 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 から削除されました。
| mysqli::commit | flags と name が追加されました。
| mysqli::options | MYSQLI_SERVER_PUBLIC_KEY オプションが追加されました。
| mysqli::rollback | flags と name が追加されました。
| SoapClient::SoapClient | ssl_method オプションが追加されました。
5.4.8 | assert | description パラメータが追加されました。 description はまた、 ASSERT_CALLBACK モードのコールバック関数の4番目の引数にも指定できるようになりました。
5.4.7 | parse_url | host の認識方法を修正し、 scheme を省略してコンポーネント区切りから始まる場合にも対応するようになりました。
5.4.1 | 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 モジュールとしてインストールされた時だけサポートされました。
| apache_response_headers | この関数は、FastCGI で使用可能になりました。 以前は、PHP が Apache モジュールとしてインストールされた時だけサポートされました。
| array_combine | これまでのバージョンでは、空の配列に対しては E_WARNING を発生させて FALSE を返していました。
| array_multisort | SORT_NATURAL と SORT_FLAG_CASE が、 arg のソートフラグに追加されました。
| date_default_timezone_get | タイムゾーンの判定時に環境変数 TZ を使わなくなりました。
| date_default_timezone_get | タイムゾーンの判定時に、OS から得られる情報に頼らないようになりました。 推測に基づくタイムゾーンは信頼できないからです。
| debug_backtrace | オプションのパラメータ limit が追加されました。
| debug_print_backtrace | オプションのパラメータ limit が追加されました。
| 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 モジュールとしてインストールされた時だけサポートされました。
| 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 | encoding パラメータのデフォルトが 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_query | enc_type パラメータが追加されました。
| imagecolorset | alpha パラメータが追加されました。
| isset | 文字列のオフセットに非数値を指定した場合は FALSE を返すようになりました。
| json_decode | options パラメータが追加されました。
| json_encode | option に JSON_PRETTY_PRINT、JSON_UNESCAPED_SLASHES および JSON_UNESCAPED_UNICODE が追加されました。
| mb_encode_numericentity | is_hex パラメータが追加されました。
| number_format | この関数は、 dec_point や thousands_sep に複数バイトを指定できるようになりました。 それまでは、複数のバイトを指定しても先頭の 1 バイトしか使われませんでした。
| ob_start | ob_start の三番目のパラメータが boolean erase (これを FALSE にすると、スクリプトの実行が終了するまで出力バッファを削除できなくなります) から integer flags に変わりました。 残念ながら、そのせいで API の互換性が崩れてしまい。 PHP 5.4.0 より前のバージョンで三番目のパラメータを使っていたコードは、 そのままでは期待通りに動かなくなりました。 この例 のようにして、両方のバージョンでの互換性を保つ必要があります。
| ob_start | チャンクサイズに 1 を指定したときに、 1 バイトのチャンクを出力バッファに送るようになりました。
| 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 が使えるようになりました。
| Phar::setStub | len パラメータが追加されました。
| PharData::setStub | len パラメータが追加されました。
| SimpleXMLElement::getDocNamespaces | from_root パラメータが追加されました。
| SoapClient::SoapClient | keep_alive オプションが追加されました。
5.4 | grapheme_substr | length に正の値を指定して、 引数の文字列がその長さより短かった場合に、start に基づいて残りのすべての文字列を返すようになりました。 以前のバージョンでは FALSE を返していました。
5.3.9 | is_a | パラメータ allow_string が追加されました。
| is_subclass_of | パラメータ allow_string が追加されました。
5.3.7 | crypt | Blowfish のモード $2x$ および $2y$ が追加され、高ビット攻撃に対応できるようになりました。
| 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 | get_html_translation_table | encoding パラメータが追加されました。
| mt_rand | max < min の場合に E_WARNING を発行して FALSE を返すようになりました。
| rawurlencode | rawurlencode を EBCDIC 文字列で使った場合に、 チルダ文字をエンコードしなくなりました。
| sleep | PHP 5.3.4 より前のバージョンでは、Windows で sleep を実行すると、遅延が発生したときには常に NULL を返していました。 処理が完了した場合もシグナルで中断した場合も同じです。
| 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 に変わりました。
| 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 | SORT_LOCALE_STRING が、 arg のソートフラグに追加されました。
| 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_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 | この関数はパラメータリスト内で使用できるようになりました。
| func_get_arg | ある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して FALSE を返すようになりました。
| func_get_args | この関数はパラメータリスト内で使用できるようになりました。
| func_get_args | ある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して FALSE を返すようになりました。
| func_num_args | この関数はパラメータリスト内で使用できるようになりました。
| func_num_args | ある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して -1 を返すようになりました。
| gd_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 を返していました。
| getimagesize | アイコンに対応しました。
| getmxrr | この関数は、Windows プラットフォームでも動作するようになりました。
| getopt | この関数はシステムに依存しなくなり、今では Windows でも動作するようになりました。
| getopt | パラメータ longopts がすべてのプラットフォームで使えるようになりました。
| getopt | オプションの値 ("::" で指定します) に対応しました。
| 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 | srand を最初に呼び出す必要はもはやありません。 これは現在自動的に行われます。
| mcrypt_create_iv | MCRYPT_DEV_RANDOM 及び MCRYPT_DEV_URANDOM が Windows プラットフォーム上で利用可能になりました。
| mktime | mktime は、 is_dst パラメータを使用した場合に E_DEPRECATED をスローするようになりました。
| mysql_db_query | この関数は E_DEPRECATED をスローするようになりました。
| mysql_escape_string | この関数は E_DEPRECATED をスローするようになりました。
| nl2br | オプションの is_xhtml パラメータが追加されました。
| parse_ini_file | オプションのパラメータ scanner_mode が追加されました。 シングルクォートも変数の代入に使うことができます。 ハッシュ記号 (#) はコメントとしては扱われなくなり、 もし使うと警告が発生します。
| pg_lo_create | オプションの object_id が追加されました。
| pg_lo_import | オプションの object_id が追加されました。
| preg_quote | - 文字がクォートされるようになりました。
| property_exists | この関数は、アクセス権に依存せずにプロパティの存在確認を行うようになりました。
| 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 | new パラメータが追加されました。
| symlink | この関数は、Windows プラットフォーム (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。
| time_nanosleep | この関数は Windows プラットフォームでも使用可能となりました。
| time_sleep_until | この関数は Windows プラットフォームでも使用可能となりました。
| touch | Windows 環境でディレクトリの最終更新日が変更できるようになりました。
| mysqli::__construct | 持続的な接続機能が追加されました。
| mysqli::query | 非同期クエリ機能が追加されました。
| ReflectionFunction::__construct | name に クロージャ を指定できるようになりました。
| SplObjectStorage::attach | data パラメータが追加されました。
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 | checkdnsrr | TXT type が追加されました。
| 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 | 2 番目の要素として行番号を返すようになりました。
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 の Mersenne Twister 実装は、Richard Wagner による新たなシード生成アルゴリズムを使用するようになりました。 これまでのバージョンと同じシード値で同じ乱数列が生成されることはなくなりました。 この振る舞いが再び変わる見込みはありませんが、 それに関わらずこの振る舞いに頼るのは安全ではありません。
| proc_open | other_options パラメータに オプション bypass_shell が追加されました。
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 パラメータの内容を 検証するようになりました。
| 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 | タイムゾーンがおかしい場合に 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 が発生するようになりました。
| explode | limit に負の数を指定できるようになりました。
| 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 | is_dst パラメータは廃止されました。 エラー時には -1 ではなく FALSE を返すようになりました。 年月日がすべてゼロとすることが可能になりました。
| mktime | 引数なしでコールすると、mktime は E_STRICT notice を発行するようになりました。かわりに time 関数を使用しましょう。
| 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.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 として使用している場合にのみ利用可能でした。
| apache_get_version | Apache 2 の フィルター API で利用可能です。
| array_keys | strict パラメータが追加されました。
| array_merge | array_merge の動作は PHP 5 で変更されました。PHP 4 とは異なり、 array_merge は、array 型のパラメータのみを受け取るようになりました。しかし、 他の型をマージするために型キャストを使用することも可能です。 詳細は以下の例を参照してください。 array_merge PHP 5 の例 <?php $beginning = 'foo'; $end = array(1 => 'bar'); $result = array_merge((array)$beginning, (array)$end); print_r($result); ?> 上の例の出力は以下となります。 Array ( [0] => foo [1] => bar )
| cal_info | calendar パラメータが省略可能となり、 省略した場合は "すべてのカレンダー" についての情報を返すようになりました。
| checkdnsrr | AAAA type が追加されました。
| class_exists | autoload パラメータが追加されました。
| com_release | この関数は削除されました。
| 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 がバイナリセーフとなりました。
| empty | プロパティがないオブジェクトが空だとみなされないようになりました。
| error_reporting | E_STRICT が追加されました (これは E_ALL には含まれません)。
| extension_loaded | extension_loaded は、 内部的な拡張モジュール名を使ってそのモジュールが使用可能かどうかを判断します。 内部的な拡張モジュール名はほとんどの場合は小文字ですが、 大文字を使っているものもあるかもしれません。PHP 5 より前のバージョンでは、 この関数は大文字小文字を区別して名前を比較していました。
| fgetss | length パラメータがオプションとなりました。
| file | PHP 5.0.0 より前のバージョンでは、パラメータ flags でカバーしているのは include_path の設定だけでした。これを有効にするには 1 を指定します。
| file | context パラメータが追加されました。
| file_get_contents | コンテキストサポートが追加されました。
| file_put_contents | コンテキストがサポートされるようになりました。
| get_class | クラス名はその本来の表記で返されます。
| get_class | object パラメータは、 オブジェクトのメソッドからコールされた場合はオプションとなります。
| get_class_methods | PHP 5 以降、この関数は宣言されているままのメソッド名 (大文字小文字を区別) を返します。PHP 4 では、小文字で返されます。
| get_defined_constants | パラメータ categorize が追加されました。
| get_defined_vars | 返される配列に $GLOBALS 変数が 含まれます。
| get_parent_class | オブジェクトのメソッドからコールされた場合、パラメータ object はオプションとなります。
| html_entity_decode | マルチバイトエンコーディングをサポートするようになりました。
| ip2long | このバージョンより前は、ip2long が失敗したときの返り値は -1 でした。
| is_a | この関数は非推奨となり、かわりに instanceof 演算子の使用が推奨されるようになりました。この関数をコールすると E_STRICT が発生します。
| is_executable | is_executable は Windows でも使用可能となりました。
| jdtojewish | fl パラメータが追加されました。
| mb_encode_mimeheader | indent パラメータが追加されました。
| mb_send_mail | PHP 5.0.0 以降では、Content-Type および Content-Transfer-Encoding ヘッダの内容が 再定義可能となりました。PHP 4 では、常に mb_language で定義された値が用いられていました。
| md5 | raw_output パラメータが追加されました。
| md5_file | raw_output パラメータが追加されました
| microtime | get_as_float パラメータが追加されました。
| mkdir | recursive パラメータが追加されました。
| mkdir | PHP 5.0.0 以降、mkdir は いくつかの URL ラッパーを併用することが可能です。 mkdir をサポートしているラッパーの一覧については、 を参照ください。
| mysql_fetch_object | さまざまな型のオブジェクトで結果を返せるようになりました。
| opendir | path が ftp:// URL ラッパーをサポートします。
| openssl_pkcs7_encrypt | cipherid パラメータが追加されました。
| openssl_sign | signature_alg パラメータが追加されました。
| parse_ini_file | 値をダブルクォートで囲めばその中で改行を使用することもできます。
| pg_fetch_object | class_name と params が追加されました。result_type を用いた古い形式は、過去のバージョンとの互換性を保つために残されています。
| proc_open | パラメータ cwd、env および other_options が追加されました。
| range | オプションのパラメータ step が追加されました。
| realpath | これより前のバージョンでは、path に空白や NULL を指定すると realpath はスクリプトディレクトリ名を返していました。
| rename | rename は いくつかの URL ラッパーを併用することができるようになりました。 rename をサポートしているラッパーの一覧については、 を参照ください。
| rmdir | PHP 5.0.0 以降、rmdir は いくつかの URL ラッパーを併用することが可能です。 rmdir をサポートしているラッパーの一覧については、 を参照ください。
| session_id | , (カンマ) および - (マイナス) が、ファイルセッションハンドラで使用可能となりました。
| set_error_handler | error_types パラメータが追加されました。
| sha1 | raw_output パラメータが追加されました。
| sha1_file | raw_output パラメータが追加されました。
| socket_create | 定数 AF_INET6 が追加されました。
| str_ireplace | count パラメータが追加されました。
| str_replace | count パラメータが追加されました。
| stream_get_meta_data | 次の項目が返り値の配列に追加されました。 mode、seekable および uri。
| strip_tags | strip_tags がバイナリセーフとなりました。
| strrpos | needle は 1 文字以上の文字列を指定可能です。
| strrpos | offset パラメータが追加されました。
| strtotime | マイクロ秒も受け付けるようになりましたが、指定してもそれは無視されます。
| uniqid | パラメータ prefix が必須ではなくなりました。
| unlink | PHP 5.0.0 以降、unlinkは いくつかのURL ラッパーと共に使用することもできます。 unlinkをサポートするラッパーのリストについては をご覧ください。
| usleep | この関数は Windows 上でも動作するようになりました。
| mysqli_result::fetch_object | さまざまな型のオブジェクトで結果を返せるようになりました。

サンプル
付録
PHP Manual