• 技术文章 >后端开发 >php教程

    php错误控制运算符@ or die()实例用法详解

    伊谢尔伦伊谢尔伦2019-11-27 10:44:11原创4124
    PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

    如果用 set_error_handler() 设定了自定义的错误处理函数,仍然会被调用,但是此错误处理函数可以(并且也应该)调用 error_reporting() ,而该函数在出错语句前有 @ 时将返回 0。

    如果激活了 track_errors 特性,表达式所产生的任何错误信息都被存放在变量 $php_errormsg 中。此变量在每次出错时都会被覆盖,所以如果想用它的话就要尽早检查。

    php忽略错误符号 @

    @是php语言里的一个忽略错误的字符,当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。例如:

    @include("file.php");

    需要注意的是,@ 运算符只对表达式有效。可以这样理解,如果能从某处得到值,就能在它前面加上 @ 运算符。

    例如,可以把它放在变量、函数和 include 调用、常量等等之前。

    不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。

    另外,@通常是与or die()一同使用,例如:

    (@include("file.php"))
     OR die("Could not find file.php!");

    上述语句的意思是,如果包含file.php不成功的话,比如file.php文件不存在时,则在网页上打印“Could not find file.php!”,并且立即停止程序的执行。

    如果没有加@这个字符,那么当include("file.php")返回错误时,网页上打印的是:

    Warning: include(file.php) [function.include]: failed to open stream: No such file or directory
    Warning: include() [function.include]: Failed opening 'file.php' for inclusion (include_path='.;C:\php5\pear')

    有关or die()一些用法

    die()函数大家用得很熟了,不过or die()这样的写法,所产生的一些效果你也许还不知道。

    首先理解下die()。

    die定义和用法

    die() 函数输出一条消息,并退出当前脚本。

    语法

    die(status)

    status 必需。规定在退出脚本之前写入的消息或状态号。状态号不会被写入输出。

    如果 status 是字符串,则该函数会在退出前输出字符串。

    如果 status 是整数,这个值会被用作退出状态。退出状态的值在 0 至 254 之间。退出状态 255 由 PHP 保留,不会被使用。状态 0 用于成功地终止程序。

    注:如果 PHP 的版本号大于等于 4.2.0,那么在 status 是整数的情况下,不会输出该参数。

    php or die() 语句

    经常看到这样的语句:

    $file = fopen($filename, 'r') or die("抱歉,无法打开: $filename");

    or在这里是这样理解的,因为在PHP中并不区分数据类型,所以$file既可以是int也可以bool,所以这样的语句不会报错。但其处理过程可能有些朋友不大明白。

    其实在大多数的语言中, bool or bool这样的语句中,如果前一个值为真后一个值就不会再判断了。这里也是的,所以如果fopen函数执行正确的话,会返回一个大于0的int值(这其实就是"真"),后面的语句就不会执行了。

    如果fopen函数执行失败,就会返回false,那么就会判断后面的表达式是否为真了。

    结果执行了die()之后,不管返回什么,程序都已经停止执行了,并且显示指定的出错信息,也就达到了调试的目的。 就这样。

    通常与错误管理一起使用的两个函数是die()和exit()(严格说来,它们是语言构造而不是函数,但是谁在意这些呢)。

    当在脚本中调用die()和exit()时,将会终止整个脚本。

    它们都可用于阻止脚本继续执行,而使得某些重要的操作(如建立一条数据库连接)不会发生。你还可以给die()和exit()传递一个将在浏览器中打印出来的字符串。

    通常可以看到在OR条件语句中使用die()和exit()。

    例如

    include('config.inc.php') OR die ('Could not open the file. ');

    在包含这样一行代码之后,如果PHP不能包含配置文件,将会执行die()语句,并且会打印could not open the file消息。

    !defined('CURSCRIPT') && define('CURSCRIPT', ");//意思是如果没定义CURSCRIPT常量,则定义CURSCRIPT为空.

    在全书和PHP手册中,你将会看到它的各种变体,因为它是一种处理错误的快捷方式(但可能处理过度),而无需使用自定义的错误处理程序。

    其实die和exit是等价的,用来终止当前脚本,常用在调试程序的时候。

    以上就是php错误控制运算符@ or die()实例用法详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php 运算符
    上一篇:php运算符如何按照不同的条件进行分类? 下一篇:php比较运算符怎么用来比较不同的类型
    大前端线上培训班

    相关文章推荐

    • PHP 错误抑制符@ 解析 及运算符优先级 • PHP中的@符号有什么用• php laravel请求处理管道(装饰者模式)• php中对static关键字的理解

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网