设置客户端断开连接时是否中断脚本的执行

# ignore_user_abort

(PHP 4, PHP 5, PHP 7, PHP 8)

ignore_user_abort — 设置客户端断开连接时是否中断脚本的执行

### 说明

function ignore_user_abort(?bool `$enable` = `null`): int

设置客户端断开连接时是否中断脚本的执行

PHP 以命令行脚本执行时，当脚本终端结束，脚本不会被立即中止，除非设置 `enable`为 `true`，否则脚本输出任意字符时会被中止。

### 参数

`enable`

  如果设置了该值且不为 `null`，函数会设置 ignore_user_abort ini 为 `enable`。否则，函数不会改变设置，仅会返回之前的设置。

### 返回值

以整型返回之前的设置

### 更新日志

版本 | 说明
--- | ---
8.0.0 | `enable` 现在允许为 null。

### 示例

示例 #1 ignore_user_abort()例子

    <?php
    // 忽略用户中止并允许脚本
    // 永远运行
    ignore_user_abort(true);
    set_time_limit(0);

    echo 'Testing connection handling in PHP';

    // Run a pointless loop that sometime
    // hopefully will make us click away from
    // page or click the "Stop" button.
    while(1)
    {
        // 连接失败？
        if(connection_status() != CONNECTION_NORMAL)
        {
            break;
        }

        // 睡眠 10 秒
        sleep(10);
    }

    // If this is reached, then the 'break'
    // was triggered from inside the while loop

    // So here we can log, or perform any other tasks
    // we need without actually being dependent on the
    // browser.
    ?>

### 注释

在PHP尝试发送信息到客户端之前，不会检测到用户是否已中断连接。 仅使用 echo 语句不能确保信息已发送，参见 flush() 函数。

### 参见

- connection_aborted() - 检查客户端是否已经断开
- connection_status() - 返回连接的状态位
- Connection Handling 关于PHP连接处理的完整描述。

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open