0

请问在php中退出函数后获取变量新值的最佳方法是什么?下面的脚本是一个示例,我想获取变量 $ee 的新值,并在调用 exit 函数后使用它来回显错误消息。

$ee = 0;
$required = array('name', 'location', 'email', 'school', 'age');

if(isset($_POST['name'])){

    foreach($required as $ff){
    if(empty($_POST[$ff])){
    header("location:register.php");
    $ee = 1;
    exit($ee);          
    }
    }

    }
4

3 回答 3

1

如果你exit那么脚本已经完成并且不能做任何其他事情而不被再次执行。

调用exit. _

如果您想在脚本完成后使用变量中的数据,那么您必须将其存储在它将持续存在的地方,然后在将来执行脚本(或不同的脚本)时将其读回。

您可能存储它的可能位置是:

  • 一块饼干
  • 一个会话
  • 一个数据库
  • 通过网络服务器
  • 在文件中(不要使用文件,您必须处理竞争条件和文件系统效率低下,使用数据库服务器代替,以便为您处理所有事情)
于 2012-09-06T13:58:44.000 回答
1

有一个register_shutdown_function函数允许您注册在exit事件发生时将调用的函数。

void register_shutdown_function ( callable $callback [, mixed $parameter [, mixed $... ]] )

在脚本执行完成或调用 exit() 后注册要执行的回调。

可以对 register_shutdown_function() 进行多次调用,每次调用的顺序与注册时的顺序相同。如果在一个已注册的关闭函数中调用 exit(),则处理将完全停止,并且不会调用其他已注册的关闭函数。

于 2012-09-06T14:01:10.530 回答
1

使该变量保持活动状态的最简单方法是通过PHP $_GET,例如:

foreach($required as $ff){
    if(empty($_POST[$ff])){
        $ee = 1;
        $encoded_ee = urlencode($ee);
        header("location:register.php?error=" . $encoded_ee);
        exit($ee);          
    }
}
于 2012-09-06T14:02:05.933 回答