正确的使用抑制错误操作符
2013-12-16 19:41
295 查看
错误抑制操作符(或者在php手册中叫做错误控制符)是@这个符号,当在PHP中放在一个语句前面的时候,它只是简单的告诉程序不要(原文中此处为 now,估计为原作者笔误)显示这条语句产生的任何错误。如果你对这个值不确定或者不想抛出任何错误的话,这个操作符非常有用。 然而,很多程序员错误的使用错误抑制操作符。如果写代码时你把运行效率谨记在心的话,这个@操作符非常的慢而且运行代价很高。 Michel Fortin有一些例子来说明如何用其他方法来回避@这个错误抑制操作符。这是一个他使用isset这个函数 来替代错误印制操作符的方法。 [code language="php"] if (isset($albus)) $albert = $albus;
else $albert = NULL;
[/code] 等同于: [code language="php"] $albert = @$albus;
[/code] 但是虽然第二种方法比较有条理的,但是运行速度要慢两倍左右。一个好的解决方法是通过引用来分配变量,这样不会触发任何警告,例如: [code language="php"] $albert = &$albus;
[/code] 需要特别指出的是,这些改变可能会产生一些意外的副作用,应该用到对效率要求比较高的那些不会受到影响的地方。
else $albert = NULL;
[/code] 等同于: [code language="php"] $albert = @$albus;
[/code] 但是虽然第二种方法比较有条理的,但是运行速度要慢两倍左右。一个好的解决方法是通过引用来分配变量,这样不会触发任何警告,例如: [code language="php"] $albert = &$albus;
[/code] 需要特别指出的是,这些改变可能会产生一些意外的副作用,应该用到对效率要求比较高的那些不会受到影响的地方。
相关文章推荐
- windows 2008无线网络"没有正确配置为使用IP协议" 错误解决办法
- .Net使用DES解密发生“数据不正确”的错误
- [翻译] Effective C++, 3rd Edition, Item 18: 使 interfaces(接口)易于正确使用,而难以错误使用
- 用javah 导出类的头文件, 常见的错误及正确的使用方法
- windows 2008初体验常见问题: 无线网络"没有正确配置为使用IP协议" 错误解决办法
- 【原】VS2008错误:“未能正确加载包,使用 devenv /resetskippkgs 重新启用包加载”的解决
- 程序打包,"错误:应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe"工具解决办法
- 几个关于正确及错误PL/SQL对照使用的示例
- map[]的正确使用:自以为是导致map的一个错误使用
- Adodb.Stream 使用错误记录: 错误 '800a0bb9' 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
- 使用操作符时常犯的错误
- windows 2008无线网络“没有正确配置为使用IP协议” 错误解决办法
- 使用so动态链接库g++正确,gcc undefined reference错误
- (转)用javah 导出类的头文件, 常见的错误及正确的使用方法
- javamail使用教程,正确代码,各种错误及解决方案
- 用javah 导出类的头文件, 常见的错误及正确的使用方法
- 尝试向 URI“ ”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务...。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。
- Retrofit 使用flatmap操作符时处理错误、异常
- 用javah导出类的头文件常见的错误及正确的使用方法
- 用javah 导出类的头文件的常见错误及正确的使用方法