在线文档教程
PHP
类和函数 | Classes and Functions

runkit_sandbox_output_handler

runkit_sandbox_output_handler

(PECL runkit >= 0.7.0)

runkit_sandbox_output_handler - 指定一个函数来捕获和/或处理runkit沙箱的输出

描述

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

通常,任何输出(如使用echo或print)都将被输出,就像从父级的范围打印一样。然而,使用runkit_sandbox_output_handler(),sandbox生成的输出(包括错误)可以被 sandbox.外的函数捕获。

注意:sandbox支持(runkit_lint(),runkit_lint_file()和Runkit_Sandbox类所需的)仅适用于PHP 5.1.0或专门修补的PHP 5.0版本,并且要求启用线程安全性。请参阅runkit软件包中包含的README文件以获取更多信息。

注意已弃用 从runkit版本0.5开始,此功能已弃用,计划在1.0发行版之前从软件包中删除。给定Runkit_Sandbox实例的输出处理程序可以使用Runkit_Sandbox类定义页面上显示的数组偏移语法读取/设置。

参数

sandbox

Runkit_Sandbox类的对象实例,用于设置输出处理。

callback

期望一个参数的函数的名称。生成的输出sandbox将传递给此回调。回调返回的任何内容都将正常显示。如果此参数未通过,则输出处理将不会更改。如果传递了非真值,则输出处理将被禁用,并将恢复为直接显示。

返回值

返回之前定义的输出处理程序回调的名称,或者返回FALSE如果之前没有定义处理程序的话。

例子

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.

← runkit_return_value_used

runkit_superglobals →