繁体   English   中英

我如何在PHP中的exit()函数之后保留变量的值

[英]How do I retain value of a variable after exit() function in PHP

请在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);          
    }
    }

    }

如果exit则脚本已完成,并且如果不再次执行将无法执行任何其他操作。

调用exit 之前回显错误消息(由于正在重定向,因此不回STDOUT)。

如果要在脚本完成后使用变量中的数据,则必须将其存储在将要保留的位置,然后在将来执行脚本(或其他脚本)时将其读回。

您可能存储的位置是:

  • 一块饼干
  • 一个会议
  • 数据库
  • 通过网络服务器
  • 在文件中(不要使用文件,您必须处理竞争条件和文件系统效率低下,而应使用数据库服务器,以便为您处理所有工作)

register_shutdown_function函数,该函数允许您注册exit事件发生时将调用的函数。

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

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

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

使该变量保持活动状态的最简单方法是通过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);          
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM