10

以下は PHP 5.3 では機能しますが、PHP 5.4.10 では機能しません。

throw new Custom_Exception();

class Custom_Exception extends Exception {}

PHP 5.4.10 は、次の致命的なエラーで応答します。

クラス 'Custom_Exception' が見つかりません ...

誰かが理由を知っていますか?

ps クラス定義を throw ステートメントの上に移動すると修正されます。

4

1 に答える 1

1

コードを test.php というファイルに入れ、php-5.4.10をダウンロードしました。

私が実行すると:

php -c php.ini-development -f test.php

次の出力が表示されます。

PHP Fatal error:  Uncaught exception 'Custom_Exception' in test.php:3
Stack trace:
#0 {main}
  thrown in test.php on line 3

Fatal error: Uncaught exception 'Custom_Exception' in test.php:3
Stack trace:
#0 {main}
  thrown in test.php on line 3

設定に問題があると思います。コマンドラインからテストしていますか?

編集:

また、両方のバージョンの zend_compile.c で do_bind_inherited_class を比較しました。

5.3 からの zend_compile.c

5.4.10 からの zend_compile.c

特性のサポートのみを追加したようです。

私の答えは次のとおりです。いいえ、態度が変わったとは思いません。

于 2013-05-30T02:55:44.540 に答える