开发的时候是将error_reporting设置成E_ALL的。所以NOTICE级别的错误也会显示。有人说用@屏蔽。可是听说@屏蔽错误的做法极其低效!!! 大家通常都怎么做的呀?还有就是我想知道@屏蔽错误消息的原理是什么?为什么会说他低效????哪个知道说下。谢啦。---------------------初学者问。

解决方案 »

  1.   

    我不屏蔽,notice级别的错误也修正.
      

  2.   

    我知道。所以才把E_ALL 打开的嘛。 但是这样不可避免的会有些E_NOTICE级别的错误啊。我是想知道@屏蔽错误信息的原理是什么?为何说他效率低呢?
      

  3.   

    生产环境中果断关闭错误输出(display_errors = Off),开发环境error_reporting = E_ALL, 出现NOTICE级别的提示信息,说明代码还有BUG,需要你DEBUG。
      

  4.   

    error_reporting(E_ALL^E_NOTICE)就是打开除NOTICE级以外的所有错误提示。
    一般来讲,error_reporting(0)用得并不多,即使在程序发布后。ERROR级的错误是要显示的,方便维护,否则程序执行半天硬是没个结果。
    如果你怕ERROR暴露了你的敏感信息,那么可以自定义错误类,这样就能解决问题。
      

  5.   

    +1 6楼的,不过还是习惯用@,万一页面有问题时,只须去掉该页面的@,然后检查,不影响global全局。