美文网首页PHP
php 通过反射,修改 Exception 实例的 messag

php 通过反射,修改 Exception 实例的 messag

作者: LukaChen | 来源:发表于2019-08-14 09:55 被阅读0次

    通过查看 Exception 类的源码可以知道, $message 属性使用 protect 修饰, 且没有提供 setMessage 方法。
    对于 Exception 实例应该怎么修改 message 呢?答案是: 反射!

    $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 修改掉!反射无敌。。。

    如需转载,请标注来源谢谢: http://lukachen.com/archives/303/
    http://lukachen.com 是我的个人博客,欢迎技术博客友链

    相关文章

      网友评论

        本文标题:php 通过反射,修改 Exception 实例的 messag

        本文链接:https://www.haomeiwen.com/subject/zebwjctx.html