<?php print 10 % 0; /* Warning: Division by zero in filename on line n */ ?>
__toString() が、適切な場面で常にコールされるようになりました。
マジックメソッド __toString()
は、文字列コンテキストでコールされるようになりました。
つまり、オブジェクトを文字列として使用する際には常にコールされるということです。
オブジェクトを文字列として扱った場合に自動的にオブジェクト ID
が返されるという機能は、PHP 5.2.0 で廃止されました。
オブジェクト ID は常に一意となるわけではないので、この機能には問題があったわけです。
この変更により、オブジェクト ID
が返されることを前提としたアプリケーションは動作がおかしくなってしまいます。
オブジェクトの値を文字列として使用すると、(捕捉可能な) 致命的なエラーとなります。
<?php class foo {} $foo = new foo; print $foo; /* Catchable fatal error: Object of class foo could not be converted to string in filename on line n */ ?>
<?php abstract class foo { abstract static function bar(); /* Strict Standards: Static function foo::bar() should not be abstract in filename on line n */ } ?>
Oracle 拡張モジュール
を Windows で使用するには、最低でも Oracle のバージョン 10
が必要となりました。
<?php /* allow_url_include が OFF (デフォルト) の場合 */ include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+"; /* Warning: include(): URL file-access is disabled in the server configuration in filename on line n */ ?>