# runkit_sandbox_output_handler

(PECL runkit >= 0.7.0)

runkit_sandbox_output_handler — Specify a function to capture and/or process output from a runkit sandbox

### 说明

runkit_sandbox_output_handler ( object `$sandbox` [, mixed `$callback` ] ) : mixed

Ordinarily, anything output (such as with echo or print) will be output as though it were printed from the parent's scope. Using runkit_sandbox_output_handler() however, output generated by the sandbox (including errors), can be captured by a function outside of the sandbox.

> Note: 沙箱支持（是 runkit_lint()，runkit_lint_file() 函数，与 Runkit_Sandbox 类所必需）仅可用于 PHP 5.1.0 或 PHP 5.0 的特别修补版本，并需启用线程安全。更多信息可参见 runkit 包中的 README 文件。

> Note: Deprecated

> As of runkit version 0.5, this function is deprecated and is scheduled to be removed from the package prior to a 1.0 release. The output handler for a given Runkit_Sandbox instance may be read/set using the array offset syntax shown on the Runkit_Sandbox class definition page.

### 参数

`sandbox`

  Object instance of Runkit_Sandbox class on which to set output handling.

`callback`

  Name of a function which expects one parameter. Output generated by `sandbox` will be passed to this callback. Anything returned by the callback will be displayed normally. If this parameter is not passed then output handling will not be changed. If a non-truth value is passed, output handling will be disabled and will revert to direct display.

### 返回值

Returns the name of the previously defined output handler callback, or `FALSE` if no handler was previously defined.

### 范例

Example #1 Feeding output to a variable

    <?php
    function capture_output($str) {
      $GLOBALS['sandbox_output'] .= $str;

      return '';
    }

    $sandbox_output = '';

    $php = new Runkit_Sandbox();
    runkit_sandbox_output_handler($php, 'capture_output');
    $php->echo("Hello\n");
    $php->eval('var_dump("Excuse me");');
    $php->die("I lost myself.");
    unset($php);

    echo "Sandbox Complete\n\n";
    echo $sandbox_output;
    ?>

以上例程会输出：

    Sandbox Complete

    Hello
    string(9) "Excuse me"
    I lost myself.