Wenn wir uns den Quellcode der Exception-Klasse ansehen, können wir erkennen, dass das Attribut $message mit „protect“ versehen ist und keine setMessage-Methode bereitstellt.
Wie ändere ich die Nachricht für eine Ausnahmeinstanz? Die Antwort lautet: Reflexion!
$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
Mit dem obigen Code kann die $message in $Exception geändert werden! Unbesiegbare Reflexion. . .
Weitere PHP-Kenntnisse finden Sie im PHP-Tutorial!
Das obige ist der detaillierte Inhalt vonPHP ändert das Nachrichtenattribut der Ausnahmeinstanz durch Reflektion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!