Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP脚本能否在exit()之前执行公共代码?_Php_Scripting_Webserver - Fatal编程技术网

PHP脚本能否在exit()之前执行公共代码?

PHP脚本能否在exit()之前执行公共代码?,php,scripting,webserver,Php,Scripting,Webserver,如何在PHP脚本中执行以下操作 code{ $result1 = task1() or break; $result2 = task2() or break; } common_code(); exit(); 如果使用OOP,则可以将要在退出时执行的代码放入类的析构函数中 class example{ function __destruct(){ echo "Exiting"; } } 在PHP帮助文档中,您可以指定在exit()之后

如何在PHP脚本中执行以下操作

 code{
      $result1 = task1() or break;
      $result2 = task2() or break;
 }

 common_code();
 exit();

如果使用OOP,则可以将要在退出时执行的代码放入类的析构函数中

class example{
   function __destruct(){
      echo "Exiting";
   }
}

在PHP帮助文档中,您可以指定在exit()之后但在脚本结束之前调用的函数

请随时查看文档以了解更多信息


您的示例可能过于简单,因为它可以很容易地重新编写,如下所示:

if($result1 = task1()) {
    $result2 = task2();
}

common_code();
exit;
也许您正试图构建如下流控制:

do {
    $result1 = task1() or break;
    $result2 = task2() or break;
    $result3 = task3() or break;
    $result4 = task4() or break;
    // etc
} while(false);
common_code();
exit;
您还可以使用
开关()

或者在PHP5.3中,您可以使用
goto

if(!$result1 = task1()) goto common;
if(!$result2 = task2()) goto common;
if(!$result3 = task3()) goto common;
if(!$result4 = task4()) goto common;

common:
echo "common code\n";
exit;
switch(false) {
case $result1 = task1(): break;
case $result2 = task2(): break;
case $result3 = task3(): break;
case $result4 = task4(): break;
}

common_code();
exit;
if(!$result1 = task1()) goto common;
if(!$result2 = task2()) goto common;
if(!$result3 = task3()) goto common;
if(!$result4 = task4()) goto common;

common:
echo "common code\n";
exit;