我的问题与此类似:Is it possible to run code after each line in Ruby? 但是我想用PHP来做。
是否可能,如果可能,怎么样?
答案 0 :(得分:8)
您可以register一个tick handler:
<强>蜱强>
tick是由声明块内的解析器执行的每N个低级别可选语句发生的事件。在声明块的指令部分中使用ticks = N指定N的值。
并非所有陈述都是可勾选的。通常,条件表达式和参数表达式不可勾选。
正如您所看到的,它不完全是“每行代码”,除非您每行只写一个可选择的语句。但它是你能得到的最接近的。
declare(ticks=1);
register_tick_function(function() {
echo "tick_handler() called\n";
});
echo 'Line 1', PHP_EOL;
echo 'Line 2', PHP_EOL;
echo strtoupper('Line 3'), PHP_EOL;
将输出(demo):
tick_handler() called
Line 1
tick_handler() called
Line 2
tick_handler() called
LINE 3
tick_handler() called
答案 1 :(得分:1)
我认为它不在PHP中。但是,您可以编写一个PHP脚本,该脚本使用原始脚本并在原始的每一行之后插入一个额外的行。
答案 2 :(得分:0)
您可以尝试在原始PHP周围放置一个包装器,如下所示:
<?PHP
$lines = file('original.php');
foreach ($lines as $line) {
eval($line);
your_function();
}
?>