假设情景,我有这些文件:
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) { ... }
括号的内容。