如何在fork之后重置php状态

时间:2015-03-19 11:32:48

标签: php constants fork

假设情景,我有这些文件:

file1.php:

#!/bin/php
<?php
echo "starting\n";
$pid = pcntl_fork();
define('ME', 'Parent');
if($pid == 0) {
    include 'file2.php';
    exit;
}
echo "I am: ".ME;

file2.php:

#!/bin/php
<?php
define('ME', 'File2');
echo "Defined: ".ME;

当我运行file1.php时,我收到一个错误,因为ME已经定义,你不能重新定义一个常量。我如何告诉php重置所有已定义的常量和变量,以便它可以包含一个新文件而不带任何东西?据我所知,我唯一的选择是使用shell_exec或类似的来运行一个shell命令来启动一个新的php进程,但这似乎真的很迂回 - 有没有办法清除现有的定义常量?

我的具体用例是一个大型框架,其中包含许多不同阶段的文件,其中大部分都是我无法触及的,因此您可以假设我在上面的示例中唯一可以修改的内容是if($pid == 0) { ... }括号的内容。

0 个答案:

没有答案