Exception クラスのソース コードを見ると、$message 属性が protected で装飾されており、setMessage メソッドを提供していないことがわかります。
例外インスタンスのメッセージをどのように変更すればよいですか?答えは次のとおりです。reflection!
$exception = new \Exception('haha'); $message = " - use reflection appended message"; $reflectionObject = new \ReflectionObject($exception); $reflectionObjectProp = $reflectionObject->getProperty('message'); $reflectionObjectProp->setAccessible(true); $reflectionObjectProp->setValue($exception, $exception->getMessage() . $message); print_r($exception->getMessage()); haha - use reflection appended message
上記のコードを使用すると、$Exception の $message を変更できます。無敵の反射。 。 。
PHP 関連の知識の詳細については、PHP チュートリアル をご覧ください。
以上がPHP はリフレクションを通じて Exception インスタンスのメッセージ属性を変更しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。