PHP5.3.25 / PHP5.4.15 変更点
PHP公式アナウンス
変更点
Core
Fixed bug
set_error_handler
内でdebug_backtrace
を使用すると、Segmentation fault が発生するのを修正
<?php set_error_handler(function() { debug_backtrace(); }); function x($s) { $s['a'] = 1; }; $y = '1'; x($y); print_r($y); // -> 1Segmentation fault (core dumped)
Fixed bug
dns_get_record
で返されるTXTの切り出す文字列の長さを修正- 現時点でチケットがプライベートにされているが、文字列の長さに関係なく、「文字列の長さ - 1」していたのを、文字列の長さが 0 場合は、0 となるよう修正されている
Fixed bug
レスポンスコードが 300, 301, 302, 303, 307 以外の場合、follow_location
のパラメータを無視するよう修正(PHP5.4.15のみ)Fixed bug
Solaris 上におけるファイルディスクリプタリークを修正
Fileinfo
Upgraded
libmagic 5.14 にアップグレード(PHP5.4.15のみ)
Streams
Fixed Windows
x64 環境のstream_socket_pair
のエラー処理の改善
Zip
Fixed bug
ZipArchive::addFile()
ファイルの存在をチェックするよう修正- 存在しないファイルを追加した場合、
ZipArchive::addFile()
がtrue
を返し、ZipArchive::close()
がfalse
を返す挙動が、ZipArchive::addFile()
がfalse
を返し、ZipArchive::close()
がtrue
を返すように修正された。
- 存在しないファイルを追加した場合、
<?php $zip = new ZipArchive; $res = $zip->open(dirname(__FILE__) . '/bug64342.zip', ZipArchive::CREATE); if ($res === TRUE) { $f = 'aaaaaaaaaaaaaa.txt'; echo "$f\n"; $res = $zip->addFile($f); if (true == $res) { echo "add ok\n"; } else { echo "add failed\n"; } $res = $zip->close(); if (true == $res) { echo "close ok\n"; } else { echo "close failed\n"; } } else { echo "open failed\n"; } // -> Output for 5.2.7 - 5.4.14, 5.5.0alpha1 - 5.5.0alpha4, 5.5.0alpha5 - 5.5.0beta2 (PHP5.3.25は含まない) // -> aaaaaaaaaaaaaa.txt // -> add ok // -> close failed // -> Output for 5.2.0 - 5.2.6, 5.4.15, 5.5.0beta4 // -> aaaaaaaaaaaaaa.txt // -> add failed // -> close ok
様々なバージョンをオンラインで一度にチェックできる 3v4l.org が便利
3v4l.org - online PHP codepad for 80+ PHP versions
- 同じ結果をまとめてくれる
- ベンチマークの結果をグラフにしてくれる
- 外部通信はできない
- 最新の状態ではない場合がある(現時点では、5.4.15 はあるが、5.3.25 はない)